DLL



  • Hallo.

    Ich hab mich heute mit DLLs rumgeschlagen und versucht selbst so eine zu erstellen um sie dann in ein Projekt einzubinden. Leider ohne Erfolg 😞

    Ich habe, um das ersteinmal zu verstehen, mit dem Visual Studio eine Win 32 DLL erstellt. Habe dort eine Funktion geschrieben die einfach zwei int Zahlen addiert und das Ergebnis zurückgibt. Dann habe ich die DLL erstellt und es gab auch keine Fehlermeldung. Also stand mir nun die DLL und die LIB zur Verfügung.

    Meine Frage ist nun, wie ich die DLL in das Projekt, in dem ich auf die Funktion zugreifen möchte einbinde?

    MfG
    helm





  • @dEUs
    den link sollten wir mal in die FAQ stellen.

    Devil



  • Ob ich den Link zu dem Buch poste oder "FAQ!" bleibt sich gleich ... Guckt ja eh niemand in die FAQ, die Forumsüberschrift etc. *resigniert*



  • Auch wenn ihr mich gleich verflucht schlag und sonst was machen wollt 😃

    Ein sehr lobenswerten FAQ Aufbau findet man hier .

    Hier kann man sehr schön suchen und auch was finden 🙂

    @deus thx für den link zum Buch (es gibt leute die es doch noch lesen ; o )



  • Hi.
    Dankeschön. Also den Link zu dem Buch hab ich auch schon gefunden. Hab das sogar als e-book 😉 Aber das hilft mir net wirklich weiter, weil das irgendwie so bissel bla bla ist. Ich glaub der zweite Link ist besser 🙂

    Danke. Und: falls ich nicht voran komme, meld ich mich wieder 🙂

    Tschö



  • 2. link ?

    Also wenn Du das meinst:

    Ein sehr lobenswerten FAQ Aufbau findet man hier .

    Das sind die [color=red]Borland[/color] FAQ's



  • Knuddelbär: Ich weiss, aber ich hab keine Zeit, die FAQ so schön zu sortieren. Ausserdem kein Plan, von dem Script, dass die anderen dazu zur Hilfe genommen haben 😉



  • Mmh.
    Also ich glaube ich mache immer noch was falsch. Vieleicht liegts auch daran, das ich die DLL falsch mache.

    Ich lege ein Win32-DLL Projekt an mit der Option "Einfaches DLL Projekt". Dann hab ich im Arbeitsbereich 2 Quellcode-Dateien: test.cpp und StdAfx.cpp sowie eine Header-Datei: StdAfx.h. Dann füge ich noch eine leere Headerdatei test.h ein. In die schreibe ich:

    extern "C" int PASCAL EXPORT add(int a, int b);
    

    In der Datei test.cpp schreibe ich dann die Defintion:

    extern "C" int PASCAL EXPORT add(int a, int b)
    {
    return a+b;
    }
    

    Dann kompiliere ich und es gibt Fehler:
    C:\...\test.cpp(14) : error C2146: Syntaxfehler : Fehlendes ';' vor Bezeichner 'add'
    C:\...\test.cpp(14) : warning C4229: Anachronismus verwendet : Modifizierer der Daten werden ignoriert
    C:\...\test.cpp(14) : fatal error C1004: Unerwartetes Dateiende gefunden

    Ich finde das seltsam, weil ich der Meinung bin, das das heute schonmal so geklappt hat. Ich glaube ich verzweifel daran noch. *grrrr*

    Danke nochmals für Eure Hilfe.



  • mach es ohne Heder Datei
    und oder versuch es so

    extern "C" __declspec(dllexport) int GibBA(int a , int b)
    {
    return a+b;
    }
    und dann in exe Datei so einbinden in Heder-Datein

    extern "C" __declspec(dllimport) int GibBA(int a , int b)

    und dann irgend wo abrufen
    GibBA(2,3);
    aha DLL in exe Debug kopieren 😉 evnt. noch lib einbinden vertig ;-))


Anmelden zum Antworten