Dll einbinden



  • Ich möchte nur eine paar simple Funktionen aus einer Dll auslesen. Ich verwende devcpp. Die Dll hab ich mit Hilfe von http://bcb-tutorial.c-plusplus.net/ geschrieben und auch schon eine kleine Konsolenanwendung, nur mal so um die ganze Sache zu testen.
    Wie kann ich nun die Dll mit meiner Anwendung verknüpfen? Ich hab bereits versucht beide im selben Projekt zu kompilieren und eine Lib Datei zu linken die bei der Kompilierung der Dll entstanden ist, aber hat alles beides nicht funktioniert. Zumindest gibt mein Kompiler die Fehlermeldung aus, dass die Funktionen die ich aus der Dll aufrufen will nicht deklariert sind.

    Hoffe mir kann jemand helfen.

    Edit: Ich habe gerade gemerkt das ich eine Header Datei vergessen hatte, aber es funktioniert immer noch nicht.

    Das steht in der Dll Header Datei:

    //------------------Addition--------------------------
    __declspec(dllimport) int addieren(int x, int y);
    //----------------Subtraktion-------------------------
    __declspec(dllimport) int subtrahieren(int x, int y);
    

    Das hier wird ausgegeben:
    [Linker error] undefined reference to \_imp\_\_\_Z8addierenii' [Linker error] undefined reference to_imp___Z12subtrahierenii'



  • Bei Devc++ (mingw32) linkt man doch .a Dateien, und keine Libs. Haste das lib mitm Visual-Studio erstellt?



  • Dieser Thread wurde von Moderator/in evilissimo aus dem Forum C++ in das Forum Compiler-Forum verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • mmhmmm schrieb:

    Bei Devc++ (mingw32) linkt man doch .a Dateien, und keine Libs. Haste das lib mitm Visual-Studio erstellt?

    Mein Fehler. Es ist eine .a Datei, aber devcpp hat sie libProjekt3 bei mir genannt.

    Also ich hab jetzt wieder alles in ein Projekt gepackt und die Header Datei der Dll in die exe included. Jetzt kommt dieser Linkerror wie oben schon geschrieben.

    Wenn ich jetzt die .a Datei dazulinke kommen diese Fehler:
    multiple definition of addieren(int, int)' first defined here multiple definition ofsubtrahieren(int, int)'
    first defined here



  • Also, dann nimm ausm code die declspecs raus, und inkludiere nur den header. .a datei linken, und gud is.



  • Wer englisch kann ist klar im Vorteil 😡



  • mmhmm schrieb:

    Also, dann nimm ausm code die declspecs raus, und inkludiere nur den header. .a datei linken, und gud is.

    Danke funktioniert jetzt. 😃


Anmelden zum Antworten