PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Eigene LIBs


Malte 2
29.09.2002, 14:50
Guten Tach!

Ich benutze den MS Visual C++ 6.0 Compiler und würde mir gerne eine eigene LIB für meine DirectDraw-Routinen erstellen. Die sollte so funktionieren, wie eine "richtige" LIB, also dass man sie unter "Einstellungen" hinzufügt und eine Include-Datei einbindet (für die Prototypen). Ich hab da aber ein Problem . . .

Ich hab erstmal unter "Optionen" die Pfade für meine eigenen LIBs und Hs eingefügt. Dann hab ich ein leeres LIB Projekt erstellt und eine Headerdatei und eine Quellcodedatei eingefügt. In die Header Datei habe ich dann den Prototyp geschrieben und in die CPP die Funktionsdefinition. Dann habe ich in dem Projekt, in dem ich die Funktion nutzen will, die Header Datei eingebunden und unter Einstellungen die LIB hinzugefügt.

Der Compiler sagt aber, dass er das Symbol (also meine Funktion aus der LIB) nicht findet. Wie geht'n das jetzt?


Shooter
11.10.2002, 10:38
Ich denke, du musst die Funktionen exportieren. Dazu musst du den Funktionsrumpf ein bisschen umbauen, wie genau, weiß ich jetzt aber auch nicht.

Bei DLLs geht das irgendwie mit dllexport oder so, aber ich weiß es nicht genau.

Malte 2
12.10.2002, 17:33
Danke!

Weiß denn jemand, wie es geht?

Malte 2
14.10.2002, 12:27
Ich hab's jetzt zum Laufen bekommen. Ich hatte die ganze extern "C" Angelegenheit vergessen.

Das Programm läuft jetzt mit den LIB Funktionen, aber der Linker gibt mir eine Warnung, wenn ich das Programm kompiliere, das die LIBs verwendet:

LINK : warning LNK4098: Standardbibliothek "LIBC" steht in Konflikt mit anderen Bibliotheken; /NODEFAULT:Bibliothek verwenden

Was muss ich da noch machen, damit meine eigenen LIBs auch ohne diese Warnung laufen.

Shooter
14.10.2002, 23:08
Soweit ich weiß, entsteht der Fehler, wenn die LIB im Debug-Modus kompiliert wird und das Projekt als Release oder umgekehrt. Probier's doch mal aus.

Malte 2
14.10.2002, 23:29
Joah, das könnte sein. Die LIB ist im Release-Modus erstellt, mein Projekt, das noch nicht relativ weit ist, im Debug-Modus.

Werd ich ja sehen, wenn das Projekt fertig ist.

Vielen Dank :) !