Speicherlecks finden?
- ts-soft
- Beiträge: 22292
- Registriert: 08.09.2004 00:57
- Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel - Wohnort: Berlin
Globale Variablen in der DLL werden beim entladen der DLL freigegeben. Wenn Du also einen erhaltenen String nicht einer neuen Variable zuordnest, bevor Du die DLL entlädst, ist der Pointer ungültig.
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

-
- Beiträge: 713
- Registriert: 22.03.2005 00:29
- Computerausstattung: Computer und Strom vorhanden
- Wohnort: LK Wolfenbüttel
Das verstehe ich jetzt nicht, also man kann doch laut PB-Hilfe problemlos einer Procedure einen String als Rückgabewert übergeben.remi_meier hat geschrieben:Was meinst du, wieso du Rückgabestrings immer als Global definieren musst?
procedure.s test()
procedurereturn testvar
Wenn man aber von eine Procedure einen String zurück bekommen kann, warum nicht auch von einer DLL? soweit ich weiß müßte das gehen. Testen kann ich aber frühsten morgen oder übermorgen.
Und auf das allocieren und freigeben von speicher müßte auch "DLLübergreifend" gehen.
MRK-Soft hat mal eine TCP.dll erstellt (MRK hat glaube ich auch die easydb.dll erstellt /galaxy) und dort kommt man einen speicherbereich erstellen, den übergeben und mußte nichts mehr löschen, weil die dll das tat. oder umgekehrt.
Da eine Dll wohl wirklich wie ein "eigenes programm" arbeitet, aber den selben speicher des hauptprogrammes teilt, sollte das doch wirklich möglich sein. besonders wenn für dll und hauptprogramm Purebasic genommen wird.
heute komme ich da nicht mehr zum testen. versuche es aber morgen mal. Könnte mir höchstens Vorstellen, das PB die Speichervergabe (MEmory, Variablen, Strukturen) intern verwaltet und das nicht abhängig zum Speicherbreich macht, nicht direkt. dann würde es natürlich Probleme geben. Ich habe da aktuell "leicht ähnliches Problem" mit Strukturen.
könnte von Grunde her das selbe selbe sein.
Aber das bekommen wir bestimmt noch raus

Bis später.