Stell doch erstmal dein FastMM ordentlich ein.
Speziell folgende Punkte sehn nicht so gut aus:
Zitat von
deine FastMM4Options.inc:
Delphi-Quellcode:
{.$define ShareMM}
{.$define ShareMMIfLibrary}
{.$AttemptToUseSharedMM}
{Define this to enable backward compatibility for the memory manager sharing
mechanism used by Delphi 2006 and 2007, as well as older FastMM versions.}
{$define EnableBackwardCompatibleMMSharing}
Wenn dir der interne FastMM ausreichent, dann verwende einfach die SimpleShareMem.pas .
[add]
Wenn ich das
ReportMemoryLeaksOnShutdown := DebugHook <> 0;
in der EXE weglasse, dann gibt es keine Meldung. (XE2-
Win32)
Vermutlich hängt sich hier der Debugger an den Speichermanager in der EXE, obwohl du eigentlich den der
DLL nutzt.
Wenn ich das richtog gesehn hab, gibt es ein Problem in der SysUtils, wo nachdem beide MemoryManager freigegeben wurden noch versucht wird ein String freizugeben.
Probier mal was passiert, wenn du die Init-Initialisationsreihenfolge nicht durcheinanderbringst und in der DLLMain das
uses MyForm;
in das Interface verschiebst.