Das heißt du erstellst in der
DLL eine Form-Instanz und gibst diese dann an die EXE weiter?
Nein, sowas natürlich nicht!
Ich mache es richtig und übergebe der
DLL ein PAnsiChar.
Zur besseren Veranschaulichung habe ich eine Beispielprojektgruppe mit Delphi 2009 erstellt.
Im angehängten ZIP bitte die Projektgruppe öffnen.
Es ist ein Programm nebst
DLL.
In den Projekt-Einstellungen beider Projekte die Werte für Output directory, Working directory, Host application und
Unit output directory entsprechend eurer Konfiguration anpassen.
Ich arbeite hier mit Umgebungsvariablen.
Auch müsst ihr ggf. den Ort der FastMM4.pas anpassen, der wird bei mir über die Tools->Options->Delphi Options-> Library -
Win32 vererbt.
Die entsprechenden FastMM4-DLLs nicht vergessen.
DLL als Startprojekt:
In der
DLL den Breakpoint nach der Stelle setzen, wo die
DLL-Frm den neuen Caption-String erhält (DLLMain - Zeile 22).
Sobald das Programm hier anhält, bitte die Maus über die Property Caption von DLLFrm.lbl1.Caption halten.
Normalerweise erscheint dann dort dann der entsprechende String, mit FastMM4 eine Fehlermeldung (siehe Screenshot im Anhang).
Merkwürdigerweise kann man einen Debug-Hint erhalten, wenn man auf lbl1 geht und dort über TControl nach FText sucht.
Hier steht's dann richtig drin.
Es ist irgendwie so, als ob FastMM4 nicht mit GetText von der Caption-Property zurecht kommt.
Kann jemand mein Problem nachvollziehen?