DLL in Visual Studio 2008 einbinden und verwenden



  • Hallo,

    ich möchte Methoden aus einer DLL verwenden um eine an den Rechner angeschlossene Hardware anzusprechen.

    Folgende Dateien habe ich:

    dateiX.dll
    dateiX.h
    dateiX.lib

    Kann mir jemand einige Basics erklären, sowie ich die ganzen Sachen einbinden und verwenden kann?

    Ich habe rausgefunden, dass ich in den Projekteingenschaften unter Configuration Properties / Linker / Input unter Additional Dependencies die dateiX.lib eintragen muss.

    Außerdem habe ich in meinem CPP-File wo die Main-Methode ist, ein #include <...> für die Header-Dateien windows.h und dateiX.h eingetragen. Allerdings ist das wohl nicht ausreichend. Ich bekomme auch einen "fatal error C1853" beim Build.

    Ich bin leider neu auf dem Gebiet u. wäre dankbar wenn mir jmd. eine Step by Step Anleitung geben könnte...

    Danke für Eure Hilfe.



  • Hat sich erledigt, aber trotzdem Danke
    Einfacher als ich gedacht habe.
    So ein Grundlagenbuch ist doch nicht schlecht.
    Bis bald…
    THX



  • Ich habe eine DLL unter C++/CLI geschrieben.. Das Grundgerüst sieht in etwa so aus:

    ...
    namespace Complex
    {
        public value class Complex
        {
            ...
        }
    
        Double Abs(Complex c)
        {
            return ...;
        }
    }
    ...
    

    Das ganze kompiliert einwandfrei und als Releaseprodukt erhalte ich die Complex.dll. In dem Projekt in dem Ich die DLL verwenden will habe ich sie unter "Verweise" hinzugefügt. IntelliSense erkennt Complex::Abs(), aber die Complex::Complex-Klasse kann ich nicht verwenden..
    Ich habe vorher noch nie was mit DLL's gemacht. Was habe ich falsch gemacht?



  • Guess... Der Namensraum und die Klasse heissen gleich. Vielleicht hat es etwas damit zu tun? (Ich weiss es nicht, nur ein Tipp :p)



  • xD
    wusste nicht dass das nicht erlaubt ist. Naja, jetzt weiss ichs.. 😛



  • Der zweite Beitrag war nicht von mir!

    Lustig, dass hier manche anscheiend Geltungsbedürfnisse haben und dumme Kommentare abgeben müssen. Dann schreibt doch lieber garnix...



  • 20080428 schrieb:

    Der zweite Beitrag war nicht von mir!

    Lustig, dass hier manche anscheiend Geltungsbedürfnisse haben und dumme Kommentare abgeben müssen. Dann schreibt doch lieber garnix...

    Registriere Dich doch, dann passiert sowas nicht mehr.
    Wer weiß ob der Beitrag nicht wirklich von Dir ist, oder ist der letzte Beitrag wirklich vom Original Poster???
    Registrier Dich, dann klappt das auch mit den Beiträgen, kostet auch nix, is for free.



  • Noch eine Frage:
    Wie kann ich meine DLL zur laufzeit laden?
    In der DLL befinden sich Namen für die Komponenten. Ziel ist es, dass der Benutzer die Sprache wählen kann, und je nach Sprachwahl soll halt eine andere DLL geladen werden.
    Oder gibt es eine elegantere/bessere Lösung für dieses Problem?





  • okey.. ich schau mir das mal an..

    Gibt es wirklich kein Pendant zu LoadLibrary und GetProcAdress in .Net?



  • Argus Magnus schrieb:

    okey.. ich schau mir das mal an..

    Gibt es wirklich kein Pendant zu LoadLibrary und GetProcAdress in .Net?

    Doch natürlich, sogar einfacher (Klasse Assembly).
    Jedoch ist der Weg für Localization von Microsoft angedacht und vorbereitet.
    Simon


Anmelden zum Antworten