[Visual Studio] Objects von anderem Projekt für TestProjekt referenzieren
-
Hallo!
Ich nutze Visual Studio 2010 für die Programmierung einer Software in C++. Hierzu habe ich eine Solution und ein Projekt angelegt. Ein zweites Projekt in dieser Solution nutze ich für das Schreiben der Unit Tests. Die Projektstrutkur sieht also folgendermaßen aus
Solution:
|--- App (Project)
|--- AppTests (Projects)Für meine Tests verwende ich das Google Test Framework (xUnit). Das Problem besteht nun darin, dass ich bisher keinen eleganten Weg gefunden habe, entweder den Sourcecode meiner Klassen vom Project "App" in mein Project "AppTests" zu referenzieren oder was mir lieber wäre die schon kompilierten Objects.
Mir ist zwar bekannt, dass ich die Header-Files in der Project-Configuration unter Configuration Properties --> C/C++ --> Additional Include Directories angeben kann und auch die Objects unter Configuration Properties --> Linker --> Additional Dependencies referenzieren kann, aber dort muss ich jedes Object einzeln angeben.
Ich würde gerne alle Objects von meinem Project "App" nutzen ohne hier jedes Object einzeln referenzieren zu müssen. Hat eventuell jemand eine Idee wie man oben beschriebenes Szenario elegant realisieren kann?
Danke für eure Hilfestellung!
Viele Grüße,
Flasher
-
Mache daraus eine Library (DLL oder statisch) - der Applikations Code referenziert einfach auf die Library, und natürlich auch die Test Applikation.
Dann kannst Du bei den Additional Linker Dependecies nur eine *.lib angeben (entweder die statische Library oder den DLL Stub).
(Jenachdem wie die Library geladen wird, musst Du auch gar nichts angeben - das wäre der Fall mit LoadLibrary(..) / GetProcAddress(..)).
-
Danke das funktioniert. Ist es ein empfohlenes Vorgehen, dass die Applikationslogik in eine eigene Lib/dll ausgelagert wird und nur die GUI bzw. eine Consolen-Benutzerschnittstelle in der Exe liegt und diese die Lib/Dll anbindet?
Bisher habe ich hier nicht getrennt und alles in die Exe gepackt.