Runtime error 216 at ...

Messages postés
70
Date d'inscription
jeudi 3 novembre 2011
Statut
Membre
Dernière intervention
6 février 2015
- - Dernière réponse : cs_yanb
Messages postés
248
Date d'inscription
lundi 27 octobre 2003
Statut
Membre
Dernière intervention
4 mars 2016
- 6 févr. 2015 à 12:10
Bonjour a tous,

Me voila confronté à un problème : à la fermeture du programme un message d'erreur apparait "runtime error 216 at" aucune idée d'où ça peut venir ? :-( c'est la première fois que sa me le fait

Voici le code utiliser pour l'envoie d'un e-mail


procedure TForm1.BtnEnvoyerClick(Sender: TObject);
begin
  IdSMTP.host := 'smtp.gmail.com'  ;
  IdSMTP.username := 'greg.ory51.gp@gmail.com';
  IdSMTP.Password := '******';
  IdSMTP.port := 587;
  IdSMTP.UseTLS := utUseExplicitTLS;
 
  with IdSSLGMail do
   begin
     SSLOptions.Mode := sslmClient;
     SSLOptions.Method:= sslvTLsv1;
     SSLOptions.VerifyDepth := 0;
     SSLOptions.VerifyMode := [];
     Host := IdSMTP.Host;
     Port := IdSMTP.Port;
     PassThrough := True;
     IdSSLGMail.StartSSL;
   end;
 
  with IdMessage do
   begin
     From.address := 'greg.ory51.gp@gmail.com';
     CClist.EMailAddresses := Adr.Text;
     Subject := Sujet.Text;
     Body.Clear;
     Body.Add(Msg.Text);
   end;
    try
      IdSMTP.Connect;
      IdSMTP.Authenticate;
     try
      idSMTP.Send(IdMessage);
      ShowMessage('Message envoyé');
     except on E:Exception do
       Log.Lines.Insert(0, 'ERROR: ' + E.Message);
     end;
    finally
     if idSMTP.Connected then idSMTP.Disconnect;
    end;
   idSMTP.Disconnect;
   IdLogEvent.Active := false;
end;


J'ai aucun problème d'envois de mail.
libeay32.dll & ssleay32.dll sont bien dans le répertoire de l'application.

j'ai du mal a comprendre pourquoi ce message d'erreur ? c'est la premièrer fois que j'ai ce problème de fermeture d'application.

"Runtime error 216 sur des PC équipés de processeur Intel P4" J'ai un processeur AMD multicore 4.40 Ghz en 8 coeurs est pas de Intel P4

Merci pour votre réponse.
Afficher la suite 

1 réponse

Messages postés
248
Date d'inscription
lundi 27 octobre 2003
Statut
Membre
Dernière intervention
4 mars 2016
5
0
Merci
Salut,
A la fermeture du programme ou à la fin de la procédure ?
Autre truc si tu disconnect une fois, est-ce que la dll aime un deuxième disconnect ? Peut-être en supprimer un ou...
...
finally
if idSMTP.Connected then idSMTP.Disconnect;
end;
if idSMTP.Connected then //Ajout
idSMTP.Disconnect;
...

IdLogEvent as tu essayé de le Free avant la fermeture du programme pour couper les liens ?
Un truc tout con dans ton source projet ajoute pour les fuites mémoires
ReportMemoryLeaksOnShutdown := True;
Ensuite les dll sont elles à jour ?
Si tu utilises idSMTP.UseTLS je me demande si il ne faut pas un idSMTP.IOHandler...mais est-il supporté ?...As tu mis des points d'arrêt pour savoir quelles procédures provoque l'erreur ? Avant le OnClose ? OnCloseQuery ? OnDestroy ? Voici de l'eau à ton moulin :p
@+
Commenter la réponse de cs_yanb