Zitat von
DMW:
Zitat von
mkinzler:
Oder einen anderen Speichermanager wie z.B. FastMem verwenden, der das überflüssig macht
Sicher? IIRC ist der Grund dafür, daß Strings referenzgezählt sind und deshalb möglicherweise von der
DLL alloziert, aber von der Anwendung freigegeben werden könnten (oder natürlich umgekehrt), weshalb beide denselben Speichermanager benutzen müssen - was aber eigentlich doch nur mit einer zusätzlichen
DLL geht.
Wenn du in
DLL und Echse FastMM benutzt dann gates auch ohne extra
DLL.
Außerdem mein üblicher Hinweis bei dem Thema: WideString lässt sich ohne Tricksereien zwischen Echse und
DLL (und auch anderen Sprachen, weil normaler OleString aka BSTR)
PChar zu verwenden, ohne eine Kopie des Strings zu übergeben ist ein wenig heikel.
Da Stringinstanzen in Delphi auf mehrere Referenzen verteilt sein könnten, könnten so aus Versehen auch andere Variablen/Felder mit dem ehemals gleichen Wert mitgeändert werden.
Nicht zu vergessen, dass das schnell sehr, sehr hässlicher Code wird...