Hallo zusammen, eventuell ist es eine ganz einfache Frage für die Spezis hier aber ich finde mich in Visual Studio 2005 nicht ganz zu recht. Folgendes Problem habe ich: Ich habe ein Projekt welches eine DLL erstellen soll. Um dies zu testen habe ich eine Projektkonfiguration angelegt um eine .exe zu erstellen. Dabei wird natürlich die Main Funktion benötigt. Ich suche nun eigentlich ein Konfigurationspunkt wo ich einfach ein #Define oder ähnliches angeben kann, den ich im Quellcode auswerten kann. Wenn das Define gesetzt ist wird einfach die MainFunktion ausgeblendet und nicht mitkompiliert und ansonsten, wenn es eine exe wird, wird diese mit eingebunden. Gibt es so eine Möglichkeit?! Besten Dank für die Antworten im Vorraus! Gruß Josef
normalerweise legt man für ein Testprogramm ein eigenes kleines Projekt an. Da kannst du auch gleich testen, ob deine DLL-Interfaces korrekt sind - Stichworte declspec dllimport dllexport Zu deiner eigentlichen Frage: natürlich geht das. In den Projekt-Properties die entsprechende Konfiguration einstellen und unter "c/c++"/"Preprocessor"/"Preprocessor Definitions" etwas hinzufügen.
Wenn ich deine Frage richtig interpretiere, gibt es mehrere #define an die du dich hängen kannst. Schau einfach in die Project-Options, bei den C++ Optionen, was alles beim Präprozessor an vordefinierten Konstanten vorhanden ist. Je nach DLL Typ sind da mehrere Definements vordefiniert, von denen du dir eines aussuchst _WINDLL wäre wahrscheinlich ein guter erster Ansatz http://msdn.microsoft.com/en-us/library/aa235516(v=vs.60).aspx
1 | .....
|
2 | |
3 | |
4 | #ifndef _WINDLL
|
5 | int main() |
6 | {
|
7 | // teste meine DLL-Funktionen
|
8 | }
|
9 | #endif
|
Du kannst dir natürlich auch dein eigenes #define dafür definieren, welches du händisch freischaltest oder überhaupt die Testumgebung von der DLL trennen und in ein anderes Projekt verfrachten.
Hi Seh das auch so. Du solltest dir ein separates Test executable anlegen. Davon abgesehen, wenn du in c# programmierst kannst du die main einfach drin lassen das sollte nicht weiter stören wenn du eine dll erstellst.
Besten Dank für die schnellen Antworten! Der Eintrag bei Preprocessor war genau der, den ich suchte. Wusste nur nicht dass dies wirklich die Defines sind. Ich bin dabei ein zusätzliches Testprogramm für die DLL zu nutzen aber für schnelle Funktionsüberprüfungen nutze ich gerne die EXE Version. Dort benötige ich dann nur Consolen Outputs zum Debuggen und bin ganz zufrieden damit. Ich habe schon die ersten Gehversuche mit der DLL in einem MFC C++ Programm gemacht und werde nun die neue Version meiner DLL dort wieder einbauen. Was passiert eigentlich mit einem printf in einer DLL wenn die DLL in einem MFC Programm aufgerufen wurde?!
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.