Zitat von
Wormid:
Also, dann nochmal mein Beispiel von vorhin, mit Pointern...
Bei mir ist das kompilierbar und läuft ohne Exceptions durch. Ein Speichermanager muss weder in der
DLL
noch in der Anwendung eingebunden werden. (Meine erste Version scheint nämlich nur bei statischem Linken
der Testfunktion einwandfrei zu funktionieren.)
Das ist leider eine falsche Annahme.
Dadurch, dass du einen Pointerauf den Array als Rpckgabewert übergibst, wird jeglicher Speicher, der für den Array reserviert wurde wieder als beschreibbar markiert. Nur die vier Byte für den Pointer sind fest. Theoretisch könnte in der Millisekunde nach zurückgeben des Pointers eine andere Anwendung den Speicher, wo die drei Array-Elemente liegen, wieder nutzen.
Besser ist es, den Array als Parameter zu übergeben, in der
DLL Speicher für den Arra zu allokieren und im Programm diesen Speicher wieder freizugeben, so gehen keine Informationen verloren.