Einzelnen Beitrag anzeigen

hmb

Registriert seit: 24. Jul 2007
12 Beiträge
 
#1

Indy 9.0.18 Probleme mit BCB 5.0

  Alt 1. Feb 2008, 19:02
Hallo,
ich habe nun den zweiten Anlauf hinter mir in meinem Monsterprogramm mit Indy Mails via SMTP zu senden.
Zuerst mal: "Stand alone", also in einer einfachen Anwendung mit den Komponenten TIdSMTP und TIdMessage läuft es (= Indy als solches scheint erst mal richtig Installiert und die Komponenten ordnungsgemäß zu verwenden zu sein).
Nun habe ich aber ein großes Programm. Es wird vom Anwender ein Exe-File gestartet und dieser lädt je nach angewähltem Menüpunkt die eine oder andere DLL nach. (Das funktioniert seit Jahren alles hervorragend!). Diese DLLs benutzen wiederum eine selbst geschriebene Komponente als Pool für alle möglichen Methoden und Informationen. Jetzt wollte ich das Versenden von E-Mails auch mit dieser Komponente durchführen. Leider funktionierte dies zuerst mit der 14er Version von Indy nicht und auch mit der 9.0.18 nicht.
Das Problem stellt sich so dar, dass sich das ganze Programm aufhängt sobald die zweite Dll vom Exe-File gestartet wird. Nach Debug -Versuchen habe ich herausgefunden, dass noch nicht mal der DllEntryPoint der zweiten DLL durchlaufen wird.
Das Kuriose ist, dass es alleine reicht, wenn

TIdSMTP *l_MailProtokoll = NULL;

im Code meiner Komponente auftaucht und weiter nichts damit gemacht wird, damit sich das Programm aufhängt. Der Code wird nie ausgeführt (ist aber vom Compiler fehlerfrei übersetzt und auch Bestandteil der BPL und auch nicht vom Compiler raus-optimiert).
Lasse ich die Zeile weg (!) so läuft es Fehlerfrei.
Gibt es Probleme mit der Indy-Bibliothek wenn diese in BPL s also von anderen Komponenten verwendet wird, und diese dann noch ausgerechnet von DLLs verwendet werden?
Hier noch mal die Zusammensetzung meiner BPL zur Info:
Delphi-Quellcode:
USERES("BHSBasicsPPS.res");
USEPACKAGE("vcl50.bpi");
USEUNIT("BHSBasics.cpp");
USELIB("..\..\..\apcv\ApplicationInterface.lib");
USEUNIT("basConstDef.cpp");
USEPACKAGE("Vcldb50.bpi");
USEPACKAGE("vclado50.bpi");
USELIB("C:\Programme\Borland\CBuilder5\Lib\PSDK\mapi32.lib");
USEPACKAGE("JvCoreC5R.bpi");
USEPACKAGE("Indy50.bpi");
  Mit Zitat antworten Zitat