CSring an DLL übergeben



  • Hi,

    ich muss einen Pfad, in Form eines CString´s, an eine DLL übergeben.

    Meine Frage nun, welchen Typ muss die exportierende Funktion in der DLL haben?

    // exportierte Funktion.
    XMLDLL_API ? fnXmlDLL(?)
    {
         return 0;
    }
    


  • 😕 void, int, long, my_retrun_type, ist_doch_egal



  • Hi,
    bin ganz schön am verzweifeln, denn so egal ist das nicht.

    Wenn ich meiner Funktion

    *.h

    XMLDLL_API int fnXmlDLL(void);
    

    und

    *.cpp

    XMLDLL_API int fnXmlDLL(void)
    {
    	return 0;
    }
    

    in diesem Zustand ein Objekt der Klasse CString übergebe, dann bekomm ich
    Fehler.



  • Hallo,
    ist das möglich das du da wo du int stähen hast (.h,.cpp) einfach CString schreibst??

    MFG TaccoGo



  • So bekomm ich keine Fehler mehr, ich glaub das ist es.

    XMLDLL_API int fnXmlDLL(const CString);
    


  • Wenn ich es so schreibe:

    XMLDLL_API CString fnXmlDLL(void);
    

    dann bekomm ich das vom Compiler:

    c:\praktikum\codingvc\xmldll\xmldll.h(24) : error C2146: Syntaxfehler : Fehlendes ';' vor Bezeichner 'fnXmlDLL'
    c:\praktikum\codingvc\xmldll\xmldll.h(24) : error C2501: 'CString' : Fehlende Speicherklasse oder Typbezeichner
    c:\praktikum\codingvc\xmldll\xmldll.h(24) : fatal error C1004: Unerwartetes Dateiende gefunden



  • Hallo,

    wielst du der funktion ein CString übergeben dan so wie du das oben genacht hast.

    XMLDLL_API int fnXmlDLL(const CString);
    

    wendu den CString per return zurgeben möchtest dan so.

    XMLDLL_API CString fnXmlDLL(void);
    

    der compeilerfeher gling so als kent er den typ CString nicht.

    MFG TaccoGo



  • STOP. Welche DLL erstellt du. Wenn du eine DLL mit MFC erstellen willst dann musst du dies auch bei den Projekteinstellungen angeben.
    Dafür stellt der Wizard sogar ein Prokect zur Verfügung.


Anmelden zum Antworten