![]() |
Braucht sharemem mit D11 immer noch die borlndmm.dll?
Wenn ich sharemem nutze, brauche ich immer noch die borlndmm.dll?
Ich hatte schon simplesharemem versucht, aber es gibt immer eine AV beim Programm Ende, nicht so mit sharemem. |
AW: Braucht sharemem mit D11 immer noch die borlndmm.dll?
Eigentlich Nein.
* BorlandMM war der Borland-MemoryManager * Delphi nutzt aber seit ewig den FastMM (eine angepasste/abgespeckte Variante ... aber gibt auch noch den Großen) und * ![]() ![]() Ist es denn auch die erste Unit, in beiden DPR? Und gibst du in DLL/EXE auch alles wieder ordentlich frei? Unterschied ShareMem vs. SimpleShareMem * das Eine nutzt eine externe DLL, nur für den Speichermanager, welche von beiden EXE/DLL benutzt wird * das andere Simple nutzt den Speichermanager, welcher zuerst geladen wird (bei statisch gelinkter DLL meistens den der eigenen DLL) und der Zweite wird dahin umgeleitet |
AW: Braucht sharemem mit D11 immer noch die borlndmm.dll?
Zitat:
sharemem ist als ersten in der dll, sowie als erstes auch in der exe im .dpr file. |
AW: Braucht sharemem mit D11 immer noch die borlndmm.dll?
Ja, siehe die letzten beiden Punkte. (hatte oben noch was nachgetragen)
|
AW: Braucht sharemem mit D11 immer noch die borlndmm.dll?
Zitat:
![]() |
AW: Braucht sharemem mit D11 immer noch die borlndmm.dll?
Zitat:
|
AW: Braucht sharemem mit D11 immer noch die borlndmm.dll?
Also wenn ich sharemem in der Windows Sandbox nutze, gibts die System Error exception das borlndmm.dll fehlt. Nutze ich simplesharemem, scheint es zu funktionieren.
|
AW: Braucht sharemem mit D11 immer noch die borlndmm.dll?
Zitat:
|
AW: Braucht sharemem mit D11 immer noch die borlndmm.dll?
Erstmal werden es dort bestimmt keine Delphi-LongStrings, sondern OleVariant oder WideString sein
und Jene nutzen den BSTR im Speichermanager der OleAut32.dll (SysAllocString und Co.) |
AW: Braucht sharemem mit D11 immer noch die borlndmm.dll?
Danke Himitsu!
Ich benutze bisher für die Excel-DLL's
Delphi-Quellcode:
&
PAnsiChar
Delphi-Quellcode:
(dieses benötigt BorlndMM.dll). Ohne
ShareMem
Delphi-Quellcode:
habe ich es noch nicht probiert.
ShareMem
|
AW: Braucht sharemem mit D11 immer noch die borlndmm.dll?
Sharemem brauchst du ausschließlich dann, wenn ein Delphiprogramm eine Delphi-DLL lädt und dorthin zum Beispiel Delphi-Strings übergibt statt PAnsiChar, PWideChar oder WideString.
|
AW: Braucht sharemem mit D11 immer noch die borlndmm.dll?
Genauer dann, wenn man die Kontrolle von Speicher über DLL-Grenzen hinweg weiter gibt.
z.B. einen String in der EXE oder DLL erstellen, Diesen an die andere DLL übergibt (oder andersrum) und drüben dann etwas mit dem String macht, was dessen Verwaltung betrifft. * verändern (nicht nur die Chars, sondern so, das auch der Speicher des Strings vergrößert/verkleinert/verschoben/freigegeben wird) * neuen Text zuweisen * oder die Variable leeren Bei PChar's gibt man meistens nur einen Zeiger weiter, wo drüben der nur Inhalt (Chars) gelesen oder eventuell auch überschrieben werden, aber ohne dass der Speichermanager den String selbst bearbeiten muß. Anders kann man das auch über LaufzeitPackages lösen, wo dann sogar die RTTI und Typen, Funktionen, globale Variablen usw. geshared werden. -> hier kann man dann also zusätzlich auch noch Delphi-Objekte übergeben. Bei übergebenen Interfaces, ist sogar selten nötig, da dort im Interface-Objekt Zeiger zu Verwaltungsfunktionen/Speichermanager/usw. des erstellenden Moduls drin hat, womit bei Änderung/Freigabe immer die richtige DLL/EXE/SpeicherManager die Arbeit übernehmen, egal wo das Interface gerade benutzt wird- Außerdem helfen ShareMem, SimpleShareMem und Co. auch nur zwischen Delphi-DLL/EXE. Oder zu anderen Systeme ala C++Builder oder fremde C++, welche ebenfalls die Schnittstelle des (Simple)ShareMem implementieren/benutzen "könnten". (aber normal nutzt das nur Delphi untereinander ... und vielleicht noch FreePascal) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:27 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz