Probleme beim Einbinden von lib3ds
-
Hallo,
ich schreibe gerade an einem Visual C++ Programm, dass 3ds-Modelle rendern soll. Dazu wollte ich lib3ds verwenden. Bis jetzt habe ich allerdings hauptsächlich mit Java in Eclipse gearbeitet, bin also sowohl in C++ als auch in Visual Studio (2008 Express Edition) ein absoluter Anfänger.
Dementsprechend hänge ich auch bereits ganz am Anfang fest. Ich wollte einfach nur ein GUI, bei der ich auf einen Open-Button drücke, mir eine 3ds-Datei raussuche und diese in das, in lib3ds definierte, Format Lib3dsFile eingelesen wird. Dazu gibt es in lib3ds eine Funktion, die ich aufrufen möchte namens lib3ds_file_open(const char *file_name).Mein (naiver) Ansatz dazu war:
private: System::Void buttonOpen_Click(System::Object ^sender, System::EventArgs ^e) { if(openFileDialog->ShowDialog() == System::Windows::Forms::DialogResult::OK) { Lib3dsFile *f; f = lib3ds_file_open((LPCSTR) StringConvA(openFileDialog->FileName)); System::Console::WriteLine(f->user_id.ToString()); } } };
(Die letzte Zeile ist nur zum überprüfen, ob es geklappt hat.)
Dazu bekomme ich folgende Fehlermeldung:
1>------ Erstellen gestartet: Projekt: Assignment 1, Konfiguration: Debug Win32 ------ 1>Kompilieren... 1>Assignment 1.cpp 1>Verknüpfen... 1>Assignment 1.obj : error LNK2028: Nicht aufgelöstes Token (0A00001E) ""extern "C" struct Lib3dsFile * __cdecl lib3ds_file_open(char const *)" (?lib3ds_file_open@@$$J0YAPAULib3dsFile@@PBD@Z)", auf das in Funktion ""private: void __clrcall Assignment1::Form1::buttonOpen_Click(class System::Object ^,class System::EventArgs ^)" (?buttonOpen_Click@Form1@Assignment1@@$$FA$AAMXP$AAVObject@System@@P$AAVEventArgs@4@@Z)" verwiesen wird. 1>Assignment 1.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol ""extern "C" struct Lib3dsFile * __cdecl lib3ds_file_open(char const *)" (?lib3ds_file_open@@$$J0YAPAULib3dsFile@@PBD@Z)" in Funktion ""private: void __clrcall Assignment1::Form1::buttonOpen_Click(class System::Object ^,class System::EventArgs ^)" (?buttonOpen_Click@Form1@Assignment1@@$$FA$AAMXP$AAVObject@System@@P$AAVEventArgs@4@@Z)". 1>D:\Eigene Dateien\Documents\Visual Studio 2008\Projects\Assignment 1\Debug\Assignment 1.exe : fatal error LNK1120: 2 nicht aufgelöste externe Verweise. 1>Das Buildprotokoll wurde unter "file://d:\Eigene Dateien\Documents\Visual Studio 2008\Projects\Assignment 1\Assignment 1\Debug\BuildLog.htm" gespeichert. 1>Assignment 1 - 3 Fehler, 0 Warnung(en) ========== Erstellen: 0 erfolgreich, Fehler bei 1, 0 aktuell, 0 übersprungen ==========
Ich habe schon auf alle möglichen Arten versucht das Problem zu googeln und bin mir aber trotzdem nicht sicher, ob es mit dieser Managed/Unmanaged-Geschichte zusammenhängt oder ob ich lib3ds nicht richtig eingebunden habe. Da lib3ds keine lib-Datei sondern eine Ansammlung von Klassen ist, habe ich es einfach als neues Projekt in meine Projekt-Mappe eingebunden und lib3ds.h inkludiert.
Vielen Dank schonmal im Voraus.
-
Moin,
Du musst dem Linker noch die entsprechende *.lib zuweisen ... welche das ist steht in der API der Library ... die Linker-Einstellung findest Du unter Einstellung (rechte Maus auf das Projekt) und Linker
-
oder via
#üragma comment(lib, "name-der.lib")
-
Hi, erstmal danke für die schnellen Antworten.
Das Problem ist, dass lib3ds nur eine Ansammlung von C-Klassen ist und keine *.lib Datei enthält. In der API habe ich auch keinen Hinweis auf eine *.lib gefunden. Ich habe versucht unter Linker->Allgemein->Zusätzliche Bibliotheksverzeichnisse den Ordner, der die lib3ds-Dateien enthält anzugeben, es hat jedoch nichts verändert.
-
Wenn es keine LIBs gibt, dann brauchst Du auch keine. Du musst dann nur sicherstellen, dss Du alle C/CPP-Dateien hinzugefügt hast!
-
Moin,
das Projekt erstellt Dir eine DLL ... einfach *.vcproj Datei öffnen und erstellen lassen ... die DLL bindest Du in Dein Beispiel ein ... dann sollte das auch funktionieren
hand, mogel
-
Es war eine *.vcproj datei dabei, die habe ich als vorhandenes Projekt in meine Projektmappe eingebunden und die Datei lib3ds.h, in der auch
typedef struct Lib3dsFile
inkludiert. Es gibt außerdem noch eine datei namens lib3ds_file.c, die enthält
Lib3dsFile* lib3ds_file_open(const char *filename)
, aber wenn ich die inkludiere, kommen noch viel mehr Fehlermeldungen und Warnungen:
1>------ Erstellen gestartet: Projekt: Assignment 1, Konfiguration: Debug Win32 ------ 1>Kompilieren... 1>Assignment 1.cpp 1>D:\Eigene Dateien\Documents\Visual Studio 2008\Projects\C++ Bibliotheken\lib3ds-20080909\src\lib3ds_file.c(83) : warning C4273: 'lib3ds_file_open': Inkonsistente DLL-Bindung. 1> d:\eigene dateien\documents\visual studio 2008\projects\c++ bibliotheken\lib3ds-20080909\src\lib3ds.h(557): Siehe vorherige Definition von 'lib3ds_file_open' 1>D:\Eigene Dateien\Documents\Visual Studio 2008\Projects\C++ Bibliotheken\lib3ds-20080909\src\lib3ds_file.c(129) : warning C4273: 'lib3ds_file_save': Inkonsistente DLL-Bindung. 1> d:\eigene dateien\documents\visual studio 2008\projects\c++ bibliotheken\lib3ds-20080909\src\lib3ds.h(558): Siehe vorherige Definition von 'lib3ds_file_save' 1>D:\Eigene Dateien\Documents\Visual Studio 2008\Projects\C++ Bibliotheken\lib3ds-20080909\src\lib3ds_file.c(160) : warning C4273: 'lib3ds_file_new': Inkonsistente DLL-Bindung. 1> d:\eigene dateien\documents\visual studio 2008\projects\c++ bibliotheken\lib3ds-20080909\src\lib3ds.h(559): Siehe vorherige Definition von 'lib3ds_file_new' 1>D:\Eigene Dateien\Documents\Visual Studio 2008\Projects\C++ Bibliotheken\lib3ds-20080909\src\lib3ds_file.c(187) : warning C4273: 'lib3ds_file_free': Inkonsistente DLL-Bindung. 1> d:\eigene dateien\documents\visual studio 2008\projects\c++ bibliotheken\lib3ds-20080909\src\lib3ds.h(560): Siehe vorherige Definition von 'lib3ds_file_free' 1>D:\Eigene Dateien\Documents\Visual Studio 2008\Projects\C++ Bibliotheken\lib3ds-20080909\src\lib3ds_file.c(214) : warning C4273: 'lib3ds_file_eval': Inkonsistente DLL-Bindung. 1> d:\eigene dateien\documents\visual studio 2008\projects\c++ bibliotheken\lib3ds-20080909\src\lib3ds.h(561): Siehe vorherige Definition von 'lib3ds_file_eval' 1>D:\Eigene Dateien\Documents\Visual Studio 2008\Projects\C++ Bibliotheken\lib3ds-20080909\src\lib3ds_file.c(550) : error C2440: 'Initialisierung': 'void *' kann nicht in 'Lib3dsNode **' konvertiert werden 1> Konvertierung von 'void*' in Zeiger auf nicht-'void' erfordert eine explizite Typumwandlung 1>D:\Eigene Dateien\Documents\Visual Studio 2008\Projects\C++ Bibliotheken\lib3ds-20080909\src\lib3ds_file.c(563) : error C2440: '=': 'void *' kann nicht in 'Lib3dsNode *' konvertiert werden 1> Konvertierung von 'void*' in Zeiger auf nicht-'void' erfordert eine explizite Typumwandlung 1>D:\Eigene Dateien\Documents\Visual Studio 2008\Projects\C++ Bibliotheken\lib3ds-20080909\src\lib3ds_file.c(595) : warning C4273: 'lib3ds_file_read': Inkonsistente DLL-Bindung. 1> d:\eigene dateien\documents\visual studio 2008\projects\c++ bibliotheken\lib3ds-20080909\src\lib3ds.h(562): Siehe vorherige Definition von 'lib3ds_file_read' 1>D:\Eigene Dateien\Documents\Visual Studio 2008\Projects\C++ Bibliotheken\lib3ds-20080909\src\lib3ds_file.c(892) : warning C4273: 'lib3ds_file_write': Inkonsistente DLL-Bindung. 1> d:\eigene dateien\documents\visual studio 2008\projects\c++ bibliotheken\lib3ds-20080909\src\lib3ds.h(563): Siehe vorherige Definition von 'lib3ds_file_write' 1>D:\Eigene Dateien\Documents\Visual Studio 2008\Projects\C++ Bibliotheken\lib3ds-20080909\src\lib3ds_file.c(927) : warning C4273: 'lib3ds_file_reserve_materials': Inkonsistente DLL-Bindung. 1> d:\eigene dateien\documents\visual studio 2008\projects\c++ bibliotheken\lib3ds-20080909\src\lib3ds.h(564): Siehe vorherige Definition von 'lib3ds_file_reserve_materials' 1>D:\Eigene Dateien\Documents\Visual Studio 2008\Projects\C++ Bibliotheken\lib3ds-20080909\src\lib3ds_file.c(935) : warning C4273: 'lib3ds_file_insert_material': Inkonsistente DLL-Bindung. 1> d:\eigene dateien\documents\visual studio 2008\projects\c++ bibliotheken\lib3ds-20080909\src\lib3ds.h(565): Siehe vorherige Definition von 'lib3ds_file_insert_material' 1>D:\Eigene Dateien\Documents\Visual Studio 2008\Projects\C++ Bibliotheken\lib3ds-20080909\src\lib3ds_file.c(942) : warning C4273: 'lib3ds_file_remove_material': Inkonsistente DLL-Bindung. 1> d:\eigene dateien\documents\visual studio 2008\projects\c++ bibliotheken\lib3ds-20080909\src\lib3ds.h(566): Siehe vorherige Definition von 'lib3ds_file_remove_material' 1>D:\Eigene Dateien\Documents\Visual Studio 2008\Projects\C++ Bibliotheken\lib3ds-20080909\src\lib3ds_file.c(949) : warning C4273: 'lib3ds_file_material_by_name': Inkonsistente DLL-Bindung. 1> d:\eigene dateien\documents\visual studio 2008\projects\c++ bibliotheken\lib3ds-20080909\src\lib3ds.h(567): Siehe vorherige Definition von 'lib3ds_file_material_by_name' 1>D:\Eigene Dateien\Documents\Visual Studio 2008\Projects\C++ Bibliotheken\lib3ds-20080909\src\lib3ds_file.c(963) : warning C4273: 'lib3ds_file_reserve_cameras': Inkonsistente DLL-Bindung. 1> d:\eigene dateien\documents\visual studio 2008\projects\c++ bibliotheken\lib3ds-20080909\src\lib3ds.h(568): Siehe vorherige Definition von 'lib3ds_file_reserve_cameras' 1>D:\Eigene Dateien\Documents\Visual Studio 2008\Projects\C++ Bibliotheken\lib3ds-20080909\src\lib3ds_file.c(971) : warning C4273: 'lib3ds_file_insert_camera': Inkonsistente DLL-Bindung. 1> d:\eigene dateien\documents\visual studio 2008\projects\c++ bibliotheken\lib3ds-20080909\src\lib3ds.h(569): Siehe vorherige Definition von 'lib3ds_file_insert_camera' 1>D:\Eigene Dateien\Documents\Visual Studio 2008\Projects\C++ Bibliotheken\lib3ds-20080909\src\lib3ds_file.c(978) : warning C4273: 'lib3ds_file_remove_camera': Inkonsistente DLL-Bindung. 1> d:\eigene dateien\documents\visual studio 2008\projects\c++ bibliotheken\lib3ds-20080909\src\lib3ds.h(570): Siehe vorherige Definition von 'lib3ds_file_remove_camera' 1>D:\Eigene Dateien\Documents\Visual Studio 2008\Projects\C++ Bibliotheken\lib3ds-20080909\src\lib3ds_file.c(985) : warning C4273: 'lib3ds_file_camera_by_name': Inkonsistente DLL-Bindung. 1> d:\eigene dateien\documents\visual studio 2008\projects\c++ bibliotheken\lib3ds-20080909\src\lib3ds.h(571): Siehe vorherige Definition von 'lib3ds_file_camera_by_name' 1>D:\Eigene Dateien\Documents\Visual Studio 2008\Projects\C++ Bibliotheken\lib3ds-20080909\src\lib3ds_file.c(999) : warning C4273: 'lib3ds_file_reserve_lights': Inkonsistente DLL-Bindung. 1> d:\eigene dateien\documents\visual studio 2008\projects\c++ bibliotheken\lib3ds-20080909\src\lib3ds.h(572): Siehe vorherige Definition von 'lib3ds_file_reserve_lights' 1>D:\Eigene Dateien\Documents\Visual Studio 2008\Projects\C++ Bibliotheken\lib3ds-20080909\src\lib3ds_file.c(1007) : warning C4273: 'lib3ds_file_insert_light': Inkonsistente DLL-Bindung. 1> d:\eigene dateien\documents\visual studio 2008\projects\c++ bibliotheken\lib3ds-20080909\src\lib3ds.h(573): Siehe vorherige Definition von 'lib3ds_file_insert_light' 1>D:\Eigene Dateien\Documents\Visual Studio 2008\Projects\C++ Bibliotheken\lib3ds-20080909\src\lib3ds_file.c(1014) : warning C4273: 'lib3ds_file_remove_light': Inkonsistente DLL-Bindung. 1> d:\eigene dateien\documents\visual studio 2008\projects\c++ bibliotheken\lib3ds-20080909\src\lib3ds.h(574): Siehe vorherige Definition von 'lib3ds_file_remove_light' 1>D:\Eigene Dateien\Documents\Visual Studio 2008\Projects\C++ Bibliotheken\lib3ds-20080909\src\lib3ds_file.c(1021) : warning C4273: 'lib3ds_file_light_by_name': Inkonsistente DLL-Bindung. 1> d:\eigene dateien\documents\visual studio 2008\projects\c++ bibliotheken\lib3ds-20080909\src\lib3ds.h(575): Siehe vorherige Definition von 'lib3ds_file_light_by_name' 1>D:\Eigene Dateien\Documents\Visual Studio 2008\Projects\C++ Bibliotheken\lib3ds-20080909\src\lib3ds_file.c(1035) : warning C4273: 'lib3ds_file_reserve_meshes': Inkonsistente DLL-Bindung. 1> d:\eigene dateien\documents\visual studio 2008\projects\c++ bibliotheken\lib3ds-20080909\src\lib3ds.h(576): Siehe vorherige Definition von 'lib3ds_file_reserve_meshes' 1>D:\Eigene Dateien\Documents\Visual Studio 2008\Projects\C++ Bibliotheken\lib3ds-20080909\src\lib3ds_file.c(1043) : warning C4273: 'lib3ds_file_insert_mesh': Inkonsistente DLL-Bindung. 1> d:\eigene dateien\documents\visual studio 2008\projects\c++ bibliotheken\lib3ds-20080909\src\lib3ds.h(577): Siehe vorherige Definition von 'lib3ds_file_insert_mesh' 1>D:\Eigene Dateien\Documents\Visual Studio 2008\Projects\C++ Bibliotheken\lib3ds-20080909\src\lib3ds_file.c(1050) : warning C4273: 'lib3ds_file_remove_mesh': Inkonsistente DLL-Bindung. 1> d:\eigene dateien\documents\visual studio 2008\projects\c++ bibliotheken\lib3ds-20080909\src\lib3ds.h(578): Siehe vorherige Definition von 'lib3ds_file_remove_mesh' 1>D:\Eigene Dateien\Documents\Visual Studio 2008\Projects\C++ Bibliotheken\lib3ds-20080909\src\lib3ds_file.c(1057) : warning C4273: 'lib3ds_file_mesh_by_name': Inkonsistente DLL-Bindung. 1> d:\eigene dateien\documents\visual studio 2008\projects\c++ bibliotheken\lib3ds-20080909\src\lib3ds.h(579): Siehe vorherige Definition von 'lib3ds_file_mesh_by_name' 1>D:\Eigene Dateien\Documents\Visual Studio 2008\Projects\C++ Bibliotheken\lib3ds-20080909\src\lib3ds_file.c(1071) : warning C4273: 'lib3ds_file_mesh_for_node': Inkonsistente DLL-Bindung. 1> d:\eigene dateien\documents\visual studio 2008\projects\c++ bibliotheken\lib3ds-20080909\src\lib3ds.h(580): Siehe vorherige Definition von 'lib3ds_file_mesh_for_node' 1>D:\Eigene Dateien\Documents\Visual Studio 2008\Projects\C++ Bibliotheken\lib3ds-20080909\src\lib3ds_file.c(1100) : warning C4273: 'lib3ds_file_node_by_name': Inkonsistente DLL-Bindung. 1> d:\eigene dateien\documents\visual studio 2008\projects\c++ bibliotheken\lib3ds-20080909\src\lib3ds.h(581): Siehe vorherige Definition von 'lib3ds_file_node_by_name' 1>D:\Eigene Dateien\Documents\Visual Studio 2008\Projects\C++ Bibliotheken\lib3ds-20080909\src\lib3ds_file.c(1130) : warning C4273: 'lib3ds_file_node_by_id': Inkonsistente DLL-Bindung. 1> d:\eigene dateien\documents\visual studio 2008\projects\c++ bibliotheken\lib3ds-20080909\src\lib3ds.h(582): Siehe vorherige Definition von 'lib3ds_file_node_by_id' 1>D:\Eigene Dateien\Documents\Visual Studio 2008\Projects\C++ Bibliotheken\lib3ds-20080909\src\lib3ds_file.c(1148) : warning C4273: 'lib3ds_file_append_node': Inkonsistente DLL-Bindung. 1> d:\eigene dateien\documents\visual studio 2008\projects\c++ bibliotheken\lib3ds-20080909\src\lib3ds.h(583): Siehe vorherige Definition von 'lib3ds_file_append_node' 1>D:\Eigene Dateien\Documents\Visual Studio 2008\Projects\C++ Bibliotheken\lib3ds-20080909\src\lib3ds_file.c(1172) : warning C4273: 'lib3ds_file_insert_node': Inkonsistente DLL-Bindung. 1> d:\eigene dateien\documents\visual studio 2008\projects\c++ bibliotheken\lib3ds-20080909\src\lib3ds.h(584): Siehe vorherige Definition von 'lib3ds_file_insert_node' 1>D:\Eigene Dateien\Documents\Visual Studio 2008\Projects\C++ Bibliotheken\lib3ds-20080909\src\lib3ds_file.c(1211) : warning C4273: 'lib3ds_file_remove_node': Inkonsistente DLL-Bindung. 1> d:\eigene dateien\documents\visual studio 2008\projects\c++ bibliotheken\lib3ds-20080909\src\lib3ds.h(585): Siehe vorherige Definition von 'lib3ds_file_remove_node' 1>D:\Eigene Dateien\Documents\Visual Studio 2008\Projects\C++ Bibliotheken\lib3ds-20080909\src\lib3ds_file.c(1266) : warning C4273: 'lib3ds_file_minmax_node_id': Inkonsistente DLL-Bindung. 1> d:\eigene dateien\documents\visual studio 2008\projects\c++ bibliotheken\lib3ds-20080909\src\lib3ds.h(586): Siehe vorherige Definition von 'lib3ds_file_minmax_node_id' 1>D:\Eigene Dateien\Documents\Visual Studio 2008\Projects\C++ Bibliotheken\lib3ds-20080909\src\lib3ds_file.c(1285) : warning C4273: 'lib3ds_file_bounding_box_of_objects': Inkonsistente DLL-Bindung. 1> d:\eigene dateien\documents\visual studio 2008\projects\c++ bibliotheken\lib3ds-20080909\src\lib3ds.h(601): Siehe vorherige Definition von 'lib3ds_file_bounding_box_of_objects' 1>D:\Eigene Dateien\Documents\Visual Studio 2008\Projects\C++ Bibliotheken\lib3ds-20080909\src\lib3ds_file.c(1396) : warning C4273: 'lib3ds_file_bounding_box_of_nodes': Inkonsistente DLL-Bindung. 1> d:\eigene dateien\documents\visual studio 2008\projects\c++ bibliotheken\lib3ds-20080909\src\lib3ds.h(622): Siehe vorherige Definition von 'lib3ds_file_bounding_box_of_nodes' 1>D:\Eigene Dateien\Documents\Visual Studio 2008\Projects\C++ Bibliotheken\lib3ds-20080909\src\lib3ds_file.c(1417) : warning C4273: 'lib3ds_file_create_nodes_for_meshes': Inkonsistente DLL-Bindung. 1> d:\eigene dateien\documents\visual studio 2008\projects\c++ bibliotheken\lib3ds-20080909\src\lib3ds.h(587): Siehe vorherige Definition von 'lib3ds_file_create_nodes_for_meshes' 1>Das Buildprotokoll wurde unter "file://d:\Eigene Dateien\Documents\Visual Studio 2008\Projects\Assignment 1\Assignment 1\Debug\BuildLog.htm" gespeichert. 1>Assignment 1 - 2 Fehler, 33 Warnung(en) ========== Erstellen: 0 erfolgreich, Fehler bei 1, 0 aktuell, 0 übersprungen ==========
-
Dann füge mal in Deinem Projekt ein Verweis auf das lib* Projekt hinzu...
-
Sorry, aber wie gesagt, ich hab noch so gar keine Ahnung von VS und C++, wie genau verweise ich auf ein Projekt?
#include <lib3ds.vcproj>
?Falls ja, führt das nur zu neuen Fehlern:
1>------ Erstellen gestartet: Projekt: Assignment 1, Konfiguration: Debug Win32 ------ 1>Kompilieren... 1>Assignment 1.cpp 1>D:\Eigene Dateien\Documents\Visual Studio 2008\Projects\C++ Bibliotheken\lib3ds-20080909\src\lib3ds.vcproj(1) : error C2059: Syntaxfehler: '<' 1>D:\Eigene Dateien\Documents\Visual Studio 2008\Projects\C++ Bibliotheken\lib3ds-20080909\src\lib3ds.vcproj(9) : warning C4129: 'e': Nicht erkannte Folge von Escapesequenz 1>D:\Eigene Dateien\Documents\Visual Studio 2008\Projects\C++ Bibliotheken\lib3ds-20080909\src\lib3ds.vcproj(9) : warning C4129: 's': Nicht erkannte Folge von Escapesequenz 1>D:\Eigene Dateien\Documents\Visual Studio 2008\Projects\C++ Bibliotheken\lib3ds-20080909\src\lib3ds.vcproj(71) : warning C4129: '$': Nicht erkannte Folge von Escapesequenz 1>D:\Eigene Dateien\Documents\Visual Studio 2008\Projects\C++ Bibliotheken\lib3ds-20080909\src\lib3ds.vcproj(147) : warning C4129: '$': Nicht erkannte Folge von Escapesequenz 1>D:\Eigene Dateien\Documents\Visual Studio 2008\Projects\C++ Bibliotheken\lib3ds-20080909\src\lib3ds.vcproj(229) : warning C4129: '$': Nicht erkannte Folge von Escapesequenz 1>D:\Eigene Dateien\Documents\Visual Studio 2008\Projects\C++ Bibliotheken\lib3ds-20080909\src\lib3ds.vcproj(307) : warning C4129: '$': Nicht erkannte Folge von Escapesequenz 1>D:\Program Files\Microsoft Visual Studio 9.0\VC\include\msclr\gcroot.h(56) : error C2143: Syntaxfehler: Es fehlt ';' vor '{' 1>D:\Program Files\Microsoft Visual Studio 9.0\VC\include\msclr\gcroot.h(56) : error C2447: '{': Funktionsheader fehlt - Parameterliste im alten Stil? 1>D:\Program Files\Microsoft Visual Studio 9.0\VC\include\msclr\gcroot.h(135) : error C2065: 'gcroot': nichtdeklarierter Bezeichner 1>D:\Program Files\Microsoft Visual Studio 9.0\VC\include\msclr\gcroot.h(135) : error C2065: '_left': nichtdeklarierter Bezeichner 1>D:\Program Files\Microsoft Visual Studio 9.0\VC\include\msclr\gcroot.h(136) : error C2065: 'gcroot': nichtdeklarierter Bezeichner 1>D:\Program Files\Microsoft Visual Studio 9.0\VC\include\msclr\gcroot.h(136) : error C2065: '_right': nichtdeklarierter Bezeichner 1>D:\Program Files\Microsoft Visual Studio 9.0\VC\include\msclr\gcroot.h(139) : error C2182: 'swap': Unzulässige Verwendung des Typs 'void' 1>D:\Program Files\Microsoft Visual Studio 9.0\VC\include\msclr\gcroot.h(139) : error C2998: 'int swap': Kann keine Vorlagendefinition sein 1>D:\Program Files\Microsoft Visual Studio 9.0\VC\include\vcclr.h(40) : error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'PtrToStringChars' 1>D:\Program Files\Microsoft Visual Studio 9.0\VC\include\vcclr.h(40) : error C2065: '__const_String_handle': nichtdeklarierter Bezeichner 1>D:\Program Files\Microsoft Visual Studio 9.0\VC\include\vcclr.h(40) : error C2146: Syntaxfehler: Fehlendes ')' vor Bezeichner 's' 1>D:\Program Files\Microsoft Visual Studio 9.0\VC\include\vcclr.h(40) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt. 1>D:\Program Files\Microsoft Visual Studio 9.0\VC\include\vcclr.h(40) : error C2059: Syntaxfehler: ')' 1>D:\Program Files\Microsoft Visual Studio 9.0\VC\include\vcclr.h(40) : error C2143: Syntaxfehler: Es fehlt ';' vor '{' 1>D:\Program Files\Microsoft Visual Studio 9.0\VC\include\vcclr.h(40) : error C2447: '{': Funktionsheader fehlt - Parameterliste im alten Stil? 1>D:\Program Files\Microsoft Visual Studio 9.0\VC\include\excpt.h(44) : error C2143: Syntaxfehler: Es fehlt ';' vor 'Bezeichner' 1>D:\Program Files\Microsoft Visual Studio 9.0\VC\include\excpt.h(44) : fatal error C1075: Dateiende erreicht, bevor das zugehörige Element für das linke Element Klammer "{" in "D:\Program Files\Microsoft Visual Studio 9.0\VC\include\excpt.h(33)" gefunden wurde 1>Das Buildprotokoll wurde unter "file://d:\Eigene Dateien\Documents\Visual Studio 2008\Projects\Assignment 1\Assignment 1\Debug\BuildLog.htm" gespeichert. 1>Assignment 1 - 18 Fehler, 6 Warnung(en) ========== Erstellen: 0 erfolgreich, Fehler bei 1, 0 aktuell, 0 übersprungen ==========
-
Das lib* Projekt erzeugt doch irgendwas, oder? Und vermutlich auch eine LIB. Diese musst DU wie ganz oben beschrieben verweisen:
#pragma comment(lib, "pfad-zur/lib.lib")
-
Loki-84 schrieb:
Sorry, aber wie gesagt, ich hab noch so gar keine Ahnung von VS und C++, wie genau verweise ich auf ein Projekt?
#include <lib3ds.vcproj>
?nein ... einfach vorhandes Projekt öffnen ... das ist die Projekt-Datei (Make/Ant) ... dann solltest Du alles kompilieren können - müsste eine DLL (oder LIB rauskommen) ... dann öffnest Du Dein eigenes Projekt und fügst in Dein Projekt die DLL (oder LIB) hinzu ... da Du nur die Express Edition hast musst Du das so kompliziert machen
hand, mogel
-
boah, danke, endlich! Es funktioniert. Ich hatte das lib3ds-Projekt nicht erstellt. Wie du gesagt hast, wurde beim Erstellen eine lib-Datei erzeugt und damit hat es dann funktioniert. Die letzte Zeile mit der Ausgabe funktioniert zwar nicht, aber die war ja wie gasagt nur zu Testzwecken.
Nochmal vielen Dank. Ich werde mich wieder melden, wenn die nächsten Probleme auftauchen