Fehlermeldung bei dll einbindung



  • Hi,
    während ich in büchern versuche meinem Fehler auf die schliche zu kommen, akn mir ja vielleicht einer von euch weiterhelfen.
    Versuch eine dll einzubvinden, bekomme jedoch follgende Fehlermeldung.

    :\temp\c++ Files\08\08Dlg.cpp(202) : error C2352: 'k8055d::OpenDevice' : Unzulaessiger Aufruf einer nichtstatischen Member-Funktion
            d:\temp\c++ files\08\k8055d.h(16) : Siehe Deklaration von 'OpenDevice'
    Fehler beim Ausführen von cl.exe.
    

    Der C++ code von mir

    void CMy08Dlg::OnOpenDevice() 
    {
    	long CardAddress;
    	CardAddress= 3;
    	//k8055d.OpenDevice(CardAddress);
    	k8055d::OpenDevice(CardAddress);
    }
    

    k8055d.h is die header für die dll datei.
    Gibt's Tipps?
    thx mario



  • Versuch mal:

    k8055d obj;
        obj.OpenDevice(CardAddress);
    

    Die Fehlermeldung heißt einfach, dass du ein Objekt brauchst, um die Funktion aufzurufen.



  • Hi, danke vorerst mal für die auflösung des "rätsels", leider kam ein kyptischers dazu

    08Dlg.obj : error LNK2001: Nichtaufgeloestes externes Symbol "public: __thiscall k8055d::~k8055d(void)" (??1k8055d@@QAE@XZ)
    08Dlg.obj : error LNK2001: Nichtaufgeloestes externes Symbol "public: long __thiscall k8055d::OpenDevice(long)" (?OpenDevice@k8055d@@QAEJJ@Z)
    08Dlg.obj : error LNK2001: Nichtaufgeloestes externes Symbol "public: __thiscall k8055d::k8055d(void)" (??0k8055d@@QAE@XZ)
    Debug/08.exe : fatal error LNK1120: 3 unaufgeloeste externe Verweise
    

    bei dem Code

    void CMy08Dlg::OnOpenDevice() 
    {
    	long CardAddress;
    	CardAddress= 3;
    	k8055d obj; 
        obj.OpenDevice(CardAddress); 
    }
    

    Hab Ürbigends damit:

    void CMy08Dlg::OnOpenDevice() 
    {
    	long CardAddress;
    	CardAddress= 3;
    	k8055d FILE;
    	FILE.OpenDevice(CardAddress);
    }
    

    Genau die Slebe Fehlermedlung.
    PS: Was für eine bedeutung hat den die zeichenkette am ende der jeweiligen meldung.
    Schätz mal das ich jetzt ein problem mit dem verlinken des codes zur dll hab oder? 😕
    mario



  • Du schätzt richtig. 👍

    Hast du die Dll selber geschrieben? Dann musst du die Klasse auch exportieren.
    Lies mal: http://www.larsaf-iii.de/forum/cpp/Dll_machen.htm -> ganz unten!



  • Nop hab die dll vom hersteller, werd mich mal mit deinem link beschäftigen.

    Danke nochmal,
    .,mairo 🙂



  • Wenn die so vom Hersteller kommt, wird dir der Link nicht helfen. 😞
    Um das umzusetzen brauchst du den Quellcode.

    Dann bin ich erstmal ratlos...



  • Könnte vielleicht klappen, wenn man das kryptische Zeug in eine Moduldefinitionsdatei kopiert.


Anmelden zum Antworten