DLL mit Zeigerparametern



  • Ich wollte eine DLL-Funktion schreiben die
    einen Rückgabewert hat und zwei Parameter , (konkret als char*) bekommt.

    in der DLL weise ich den char* einen Wert zu den ich mit #define in der DLL
    definiert habe.

    Nachdem die dll-Funktion ausgeführt ist hat der char* einen Null-Pointer als Wert.
    Werden #define Anweisungen wie lokale Variablen behandelt, die wieder gelöscht werden wenn der Scope verlassen wird ?

    Wie kann man sonst Strings per Pointer/Referenz aus einer DLL zurückgeben ?


  • Mod

    Das müsste gegen. Was Du als define definierst ist letzten Endes eine Konstante.

    Denoch. Ich kann nur raten niemals Zeiger aus DLL's zurückzugeben. Und wenn muss für deren Entsorgung wieder die DLL bemüht werden.
    Andere Objekte als pure native C++ Struct's und Daten (also STL Objekte MFC Container etc.) sollte man in einer DLL niemals in das Interface mit einbauen.

    Das Problem ist, dass jedes Modul eine eigene Speicherverwaltung haben kann und die Objekte (je nach SP und Software Version) anders layoutet sein können. Es führt auf kurz oder lang nur zu Problemen.


Anmelden zum Antworten