dll einbinden
-
hallo!
Habe folgende Frage an euch:
Habe vor kurzem eine DLL, eine .lib und 2 header dateien gefunden,
die riesige int zahlen erstellen können(nicht nur bis 32bit).In einem Zip sind folgende Dateien vorhanden:
Ordner DLL -> BigLib.h (22KB) und BigLib.dll
Ordner Sll -> BigLib.h (9KB)
Ordner header -> BigLib.h(2KB) und BigLib.inchabe VC++ 6.0
also folgende include: #include "BigLib.h"
Muss ich da die BigLib.h aus dem Ordner SLL nehmen, aus dem selben
Ordner wie die Dll oder aus dem Ordner header?dann unter projekte -> dem projekt hinzufügen -> dateien
und dann BigLib.h und BigLib.lib auswählen oder?Aber dann gibts entweder den Fehler:
LIBCD.lib(crt0.obj) : error LNK2001: Nichtaufgeloestes externes Symbol _main
Debug/test.exe : fatal error LNK1120: 1 unaufgeloeste externe Verweise
Fehler beim Ausführen von link.exe.oder den:
LINK : fatal error LNK1104: Datei "\masm32\lib\kernel32.lib" kann nicht
geoeffnet werden
Fehler beim Ausführen von link.exe.Je nachdem welche .lib ich einbinde.
Was kann da sein?
Bitte hilf mir
Wenn möglich bitte ganz detailliert sagen, was ich wo angeben muss.Hoffe ihr könnt mir helfen!
mfg
-
Hallo!
Ersteinmal bist Du hier im falschen Forum. Dieses Forum behandelt Probleme, die ANSI C++ betreffen und nicht Windows oder Compiler spezifische Sachen.
Naja, aber ich kann trotzdem meinen Senf dazugeben ;).
Prinzipiell musst Du die Header-Datei nicht dem Projekt hinzufügen. Das include im cpp-File reicht. Wenn Du sie hinzufügst, dann musst Du unter VC 6 die Header Datei nicht kopieren. Der Compiler sucht selbständig die Pfade der hinzugefügten Dateien ab. Alternativ kannst Du im include den relativen Pfad auch angeben.
Die Lib muss dem Projekt hinzugefügt werden.
Warum gibt es den einen oder den anderen Fehler? Die gleiche ausgangssituation sollte auch den gleichen Fehler werfen.... Ich glaube, dass Du an der Stelle noch ein bißchen genauer beschreiben musst, wann die Fehler auftreten.
Mich wundert, dass eine MASM lib verlangt wird.... MASM hat i.A. nichts mit dem VC6-Compiler zu tun. Falls doch, lasse ich mich gerne belehren....
Grüße Richie
An die Moderatoren: Bitte verschiebt den Eintrag in das entsprechende Forum, danke!
-
Dieser Thread wurde von Moderator/in HumeSikkins aus dem Forum C++ in das Forum MFC (Visual C++) verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
Du musst die Header einbinden und die lib-Datei dem Linker begreiflich machen (Projekt->Eintsellungen-> Registerkarte "Linker": Objekt-/ Bibliothelsmodule -> da rein dei Pfad der lib-Datei schreiben)
-
hallo!
danke erstmal für die antworten!
brings aber immer noch nicht hin.
ich hab jetzt eine "BigLib.inc" Datei gefunden, in der unter Kommentar steht: "masm32 header for biglib"muss ich die auch irgendwie einbinden?
und nochmal:
habe 3 Ordner
1. Ordner heißt (DLL)
2. Ordner heißt (SLL)
3. Ordner heißt (header)Im Ordner "DLL" befinden sich folgende Dateien:
"BigLib.dll"
"BigLib.lib" mit 22KBIm Ordner "SLL" befinden sich folgende Dateien:
"BigLib.lib" mit 9KBIm Ordner "header" befinden sich folgende Dateien:
"BigLib.h"
"BigLib.inc"Also ich kopiere die Datei "BigLib.lib" aus dem Ordner "SLL" in den lib-Ordner von Visual, und füge den Namen unter Projekte->Einstellungen->Linker ... hinzu.
Im Hauptprogramm selbst schreibe ich: "# include "BigLib.h"
Muss ich die .inc Datei ebenfalls so einbinden?Und welche .lib muss ich verwenden?
Es kommt auch immer der Fehler:
"IBCD.lib(crt0.obj) : error LNK2001: Nichtaufgeloestes externes Symbol _main
Debug/test.exe : fatal error LNK1120: 1 unaufgeloeste externe Verweise"Bitte wenns geht genau sagen, WELCHE Dateien genau ich WO WIE einbinden muss.
Hoffe ich habs nun korrekt beschrieben.
Beim ersten Post sind mir glaun ich einige Fehler untergekommen.
mfg
-
hallo!
kann mir denn wirklich niemand schildern wie das nun geht?
Brauche eure Hilfe!
Bitte!
-
Hi,
ich arbeite zwar mit .net aber im Grunde müsste das vorgehen dasselbe sein:
zunächst mal kannst du dll sowohl explizit als auch implizit vernküpfen. So wie du es machst, währe es explizit. Siehe auch MSDN.
Dazu brauchst die dll, die lib und die Headerdatei. Alle drei müssen zusammenpassen, sonst funzt es nicht. Sorg also am besten erst mal dafür, dass du sicher die kompatiblen Teile hast.
Dann musst du die Headerdatei in den Files einbinden, wo du Methoden aus der dll nutzen willst.
Die lib bindest du so ein, wie Pellaeon beschrieben hatDu musst die Header einbinden und die lib-Datei dem Linker begreiflich machen (Projekt->Eintsellungen-> Registerkarte "Linker": Objekt-/ Bibliothelsmodule -> da rein dei Pfad der lib-Datei schreiben)
Dann noch die passende dll in %systemroot%\system32 kopieren, dann sollt es tun.
Gruß Squeegee