DLL und Funktionen



  • Hallo Forum,
    ich habe da so ein kleines Problem.

    Ich will eine DLL Datei erstellen, die eine ganz simple funktion enthält! Wenn de Funktion (die in der DLL datei steckt) aufgerufen wird, ensteht eine MessageBox die den Wert 9 anzeigt. Der Wert 9 wird von dem Programm als Parameter an die DLL übergeben.

    Nunja,klinkt eigentlich simpel, aber es funktioniert bei mir nicht^^

    ich erkläre und zeige mal ein wenig von meinem Code:

    Als erstes hätte ich da eine Header Datei, genauer genommen die dll.h. In ihr deklariere ich die Funktion. Ebendfalls teile ich ihr bei dr deklaration mit, das sieeinen Integer als parameter bekommen soll:

    void DLL message(int);
    

    Als nächstes hätte ich die dll.cpp. In ihr ist die Funktion versteckt! Also, als erstes sage ich naürlich das das hier die Funktion ist, und verstecke den übergebenen Parameter in dem Integer "b". Und schließlich erstelle ich eine MessageBox in der der Parameter, bzw die variable b angezeigt wrd:

    void message(int b)
    {
    	char acA[1024];
    	sprintf(acA, "Wert: %i", b);
         MessageBox(NULL, acA, "Information", MB_ICONINFORMATION | MB_OK);
    }
    

    In der Main.cpp rufe ich die Funktion auf, und übrgebe ihr den Parameter "9":

    message(9);
    

    Das problem ist nun das ich folgenden error bekomm, wenn ich die exe starte:

    Der rozedureinsprungspunkt "?message@@YAXXZ" wurde von der DLL "DLL.dll" nicht gefunden.

    ichvermute, das es an der header datei liegt, denn bei der den beiden cpp dateien bin ich mir ziehmlich sicher das dort alles richtig ist!

    Bei Google konnte ich leider nichts finden, und normalerweise würde ich jetzt in mein petzold schauen, doch lider habe ich ihn grade verlegt 😞

    Könnt mir vileicht jemand weiter helfen?



  • bei google kannst du nichts finden? wo googlest du denn? in swasiland? Wie man DLLs erstellt, steht mindestens 100.000.000x auf google. ansosten stehts auch ausführlich hier in der FAQ.





  • wieso nicht



  • Weils mir halt nicht hilft xD

    Mein problem ist halt, das diese erklärung nicht zu meinem problem passt. Ich habe s mir angesehen und durch gearbeitet, verglichen mit meinem Code, und sehe nur das eigentlich bei mir alles richtig ist ...



  • ja? wo ist dein dll export/import? hast du die lib eingebunden bzw die dll geladen?



  • Ja habe ich:

    #include "..\\DLL\\dll.h"
    
    #ifdef _DEBUG
    #pragma comment (lib, "..\\debug\\dll.lib")
    #else
    #pragma comment (lib, "..\\release\\dll.lib")
    #endif
    


  • Ich habe die ganze zeit alles richtig gemacht ...

    Ok ich sag euch mal was ich falsch gemacht habe ..., ihr werdet zwar lachen, aber das bin ich euch schuldig xD

    Ich hatte das Project der Dll datei und das des Programmes gleichzeitig im selben vc++ fenster geöfnet ...

    Rechts habe ich dann die beiden projecte. Ich Idi.. habe dann immer nur rechtsklich auf das dll projekt und erstellen geklickt, ich hatte gedacht das dannautomatisch das programm projekt mit erstellt wird xD

    man kann sagen das ich ein Idiot bin xD

    Aber tausenden Dank leute^^

    Jetzt habe ich euch hier so lange gequält, und das Problem durch meine eigene dummheit erst ausgelöst xF



  • Ahahahahhahahah! Mann ich kack mir gleich ein so lustig ist das... -.-

    Geh lieber öfter in den Deutsch - Unterricht anstatt hier rumzuprogrammieren.



  • Und du registrier dich mal lieber anstadt dummme Komentare ab zu geben ...


Anmelden zum Antworten