infomar Geschrieben 9. Oktober 2005 Geschrieben 9. Oktober 2005 Hallo, ich habe eine dll in C unter erzeugt und moechte diese in einen C/C++ Project verwenden. Wie kann ich die dll einbinden/verwenden? Ich benutze Visual Studio .net 2003 als Compiler.
Klotzkopp Geschrieben 9. Oktober 2005 Geschrieben 9. Oktober 2005 Durch Runtime Dynamic Linking. Stichwort LoadLibrary/GetProcAddress. Wenn du eine Headerdatei und eine Importbibliothek (.lib) hast, kannst du auch Load Time Dynamic Linking benutzen. Dafür musst du die Headerdatei mittels Includedirektive einbinden und die .lib-Datei über die Projekteinstellungen oder mit einer Pragmadirektive dazulinken.
infomar Geschrieben 9. Oktober 2005 Autor Geschrieben 9. Oktober 2005 Mit LoadLibrary/GetProcAddress habe ich es auch schon probiert, und es hat nicht funktioniert. Das ist das erstemal das ich eine dll einfuegen moechte, koennte jemand mir eine kurz Anleitung geben.
Klotzkopp Geschrieben 9. Oktober 2005 Geschrieben 9. Oktober 2005 Wie wäre es, wenn du eine bessere Fehlerbeschreibung als "hat nicht funktioniert" lieferst?
infomar Geschrieben 9. Oktober 2005 Autor Geschrieben 9. Oktober 2005 Der Compiler bringt eine Syntaxfehler. #include <stdio.h> #include <string.h> LoadLibrary("MEINE.dll") int main () { ...
Klotzkopp Geschrieben 9. Oktober 2005 Geschrieben 9. Oktober 2005 Bitte poste ab jetzt die vollständige Fehlermeldung des Compilers und kennzeichne die Stelle im Programm. In C und C++ muss Programmcode immer in einer Funktion stehen. Außerdem brauchst du den Rückgabewert von LoadLibrary für den Aufruf von GetProcAddress, es wäre also gut, wenn du dir den in einer Variablen merken würdest. Ist auch recht hilfreich für die Fehlerdiagnose.
infomar Geschrieben 9. Oktober 2005 Autor Geschrieben 9. Oktober 2005 Wenn ich "LoadLibrary("MEINE.dll")" entferne bringt er keine Fehlermeldungen mehr(ausser das er natuerlich die Funktionen nicht findet.)
Klotzkopp Geschrieben 9. Oktober 2005 Geschrieben 9. Oktober 2005 Wenn du Run-Time Dynamic Linking verwendest, wird der Compiler die Funktion nie "finden", weil du sie erst zur Laufzeit bindest (daher der Name), da hat der Compiler seine Arbeit längst abgeschlossen. In der MSDN Library gibt es übrigens ein schönes Beispiel.
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden