Cally by Reference Frage



  • Hallo Leute,

    ich hab ein Problem mit einem char*. Und zwar muss ich eine DLL schreiben, welche als Schnittstelle C entsprechen muss.

    Ich hab also ein Haupt Programm und die DLL. Die DLL schreib ich gerade in C++

    da hab ich einen ProtoTyp:

    TransTaf(char *transMessage, const char file[], const char language[]);
    

    Und einen Konstruktor:

    TransTaf::TransTaf(char* transMessage, const char file[], const char language[]) : transMessage(transMessage), file(file), language(language)
    {
    
    }
    

    Ich möchte jetzt aus dem Haupt Programm

    einen char pointer übergebeben (Adresse). In der DLL die Übersetzung machen und anschließen einfach den char point im Haupt Programm wieder ausgeben.

    [code]
    char *message;
    TransTaf test(&message,"test.txt", "DE");

    message wird dann dort erstellt

    cout << message << endl;

    Allerdings krieg ich das nicht hin.

    Weiß einer wie man das am besten anstellt. Eine sichere Lösung würde ich bevorzugen.



  • seoman schrieb:

    Allerdings krieg ich das nicht hin.

    Geht das nicht vllt. etwas genauer? Was kriegst du nicht hin? Für die Grundlagen zu DLLs usw. solltest du lieber ein Tutorial im Internet suchen, Google ist dein Freund.

    Edit: Außerdem: Dein Prototyp erwartet char * als Parameter, du übergibst aber einen Zeiger darauf: char ** .



  • hi,

    ich kann DLL einbinden und auch funktionenen exportieren etc. was ich wissen möchte wie ich diesen char pointer an meine DLL schicke, dort etwas mache auf dieser Speicheraddresse und im Haupt Programm dann den bearbeiteten char pointer verwenden kann.

    Das ist das Problem.

    also char* adresse; and DLL dort was machen, char * adresse verwenden



  • Dein char-Pointer char *message ist erst Mal nur ein Pointer, der nicht auf einen gültigen Speicherbereich verweist. Damit Du den benutzen kannst, mußt Du erst mal Speicher besorgen und den Pointer darauf zeigen lassen.

    Schau Dir mal das hier an:

    http://www.c-plusplus.net/forum/viewtopic-var-t-is-228443.html


Anmelden zum Antworten