Speicherverwaltung bei dll
-
Hey Leuts
weiss jemand wie sich die Speicherverwaltung von Variablen aendert wenn ich ein Programm als DLL laufen lasse? Ich hatte jetzt schon mehrmals das Problem dass zum Beispiel Rueckgabewerte nachher nicht geloescht werden konnten und sowas. Die Fehler treten aber immer entweder bei Rueckgabewerten oder bei uebergebenen Referenzen und Pointern auf. Meistens lautet der Fehler (isValidHeapPointer) und sowas.
Das Programm laeuft als console-application, aber nicht als dll. Kennt jemand das Problem und kann mir sagen woran das liegen kann?
Danke!
-
Wenn du in der dll den speicher anforderst musst du ihn auch wieder in der dll freigeben.
Weil dll heap != app heap
-
Dieser Thread wurde von Moderator/in evilissimo aus dem Forum C++ in das Forum WinAPI verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
Wie "ganzEinfach" gesagt hat, sollte man es sich angewöhnen den Speicher in dem Modul freizugeben, indem er auch allokiert wurde.
Leider lässt sich dieser Ansatz nicht immer durchführen, z.B. bei Verwendung der STL... deshalb muss man hier immer die DLL-Version der CRT in allen EXE/DLLs verwenden!