Fragensteller
Solution multiple Projekte als DLL

Frage
-
Servus Leute,
ich habe eine Solution mit mehreren Projekten. Eine dieser Projekte ist eine *.exe, alle anderen werden als *.dll übersetzt. Folgerichtig kommunizieren diese *.dll mit der *.exe. Klappt soweit ganz gut.
Nun habe ich meine Solution um ein neues Projekt (auch *.dll) erweitert, allerdings kommuniziert diese nicht mit der *.exe, sondern mit einer anderen *.dll aus derselben Solution. Genau da ist mein Problem:
1>Linking... 1> Creating library C:\Solution\build-v8\Projekt1\Debug\Projekt1.lib and object C:\Solution\build-v8\Projekt1\Debug\Projekt1.exp 1>Odeon_IF.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: __thiscall Odeon_Server::Odeon_Server(void)" (__imp_??0Odeon_Server@@QAE@XZ) referenced in function "public: __thiscall Odeon_Server::Odeon_Server(char const *,char const *,char const *,char const *,char const *)" (??0Odeon_Server@@QAE@PBD0000@Z) 1>Odeon_IF.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: virtual __thiscall Odeon_Server::~Odeon_Server(void)" (__imp_??1Odeon_Server@@UAE@XZ) referenced in function "public: __thiscall Odeon_IF::~Odeon_IF(void)" (??1Odeon_IF@@QAE@XZ)
Das Projekt1 ist eine *.dll, welche mit der Main.exe kommuniziert; also entsprechendes ExportFlag gesetzt.
Jedoch kommuniziert diese auch mit der neuen Odeon_Server.dll.Wenn ich bei Projekt1 unter Project Properties --> Linker --> Input --> Additional Dependencies "Odeon_server.lib" eintrage, ist der Fehler weg, allerdings stresst dann meine main.exe mit der Projekt.dll herum..
Ich vermute, dass eine *.dll nicht gleichzeitig Exportiert und Importiert werden kann?!?!?!?!
Kann mir jemand helfen?
Ich danke allen Hinweisen
Gruß LesPaul
- Typ geändert Robert BreitenhoferModerator Mittwoch, 28. September 2011 07:17 Keine Rückmeldung des Fragenstellender
- Typ geändert Robert BreitenhoferModerator Freitag, 11. November 2011 14:04 Rückmeldung des Fragenstellender
Alle Antworten
-
Hallo,
erstmal sorry für die späte Antwort. Ich war zwischenzeitlich einem anderen Projekte zugeteilt.
Stand der Dinge:
Projekt1.dll soll allgemeine Funktionen aus der Odeon_Server.dll benutzen und unter anderem eine Instanz davon erstellen; wohlgemerkt beides *.dll's.
Odeon_Server.dll habe ich nun erfolgreich erstellen können. jeweils public Konstruktor und public Destruktor. Beides deklariert und definiert.
1>Linking... 1> Creating library C:\MyProject\Debug\Projekt1.lib and object C:\MyProject\Debug\Projekt1.exp 1>Projekt1.obj : error LNK2019: unresolved external symbol "public: __thiscall Odeon_Server::Odeon_Server(void)" (??0Odeon_Server@@QAE@XZ) referenced in function "public: bool __thiscall Projekt1::create_Odeon_Server(class QString)" (?create_Odeon_Server@Projekt1@@QAE_NVQString@@@Z) 1>C:\MyProject\Debug\Projekt1.dll : fatal error LNK1120: 1 unresolved externals
Weiterhin habe ich die Odeon_Server.lib und dessen Pfad in Projekt1 --> Project Properties --> Linker --> General (Pfad) und Input (Odeon_Server.lib) angegeben.
Ich habe ausserdem im Netzt gelesen, dass ich für mein Odeon_Server _kein_ abstraktes Interface brauche?
Vielen Dank für eure Hilfen.
Gruß Lespaul
- Bearbeitet Les Paul Freitag, 11. November 2011 14:04