Forum: PC-Programmierung visual studio 10 dll release version und exe


von Hans (Gast)


Lesenswert?

Hallo Forum,
ich schreibe gerade (Visual Studio 10 C++) eine DLL und ein passendes 
Beispiel wie man diese DLL Benutzt.
Beide Projekte liegen in derselben Projektmappe als verschiedene 
Projekte ab.
DLL und DLL_BSP.

Das DLL Projekt legt die erstellte .dll in einen DLL\debugg\dll bzw. 
DLL\release\dll Ordner ab.

Das DLL_BSP Projekt legt die erstellte .exe in einen DLL_BSP\debugg\exe 
bzw. DLL_BSP\release\exe Ordner ab.

Im Visual Studio kann ich beim DLL_BSP Projekt die debugg Einstellungen 
anpassen Projekteinstellungen->debug->umgebung und den Pfad zu dem 
DLL\debugg\dll Ordner angeben.
Somit muss ich die .dll nicht mehr in den DLL_BSP\debugg\exe Ordner 
kopieren in den sich die .exe befindet.

Leider funktioniert es ja naturgemäß nicht für die releas Version.

Wie kann ich ohne die Ordnerstrukturänderung und ohne einfügen der 
release .dll Version in den DLL_BSP\release\exe diese einbinden?

Einfach gesagt. Wie kann ich der DLL_BSP.exe sagen in welchem Ordner die 
.dll zu finden ist?

: Verschoben durch User
von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Hans schrieb:
> Einfach gesagt. Wie kann ich der DLL_BSP.exe sagen in welchem Ordner die
> .dll zu finden ist?

Du könntest die Release-DLL in das Verzeichnis der Debug-Exe kopieren, 
das geht z.B. mit einem "post-build-step".

Ansonsten müsstest Du den Speicherort der DLL in die Umgebungsvariable 
PATH eintragen, die für Deine Release-Exe verwendet wird, oder die 
Release-DLL in das Windows-System-Verzeichnis kopieren (so wie es leider 
immer noch viele Installationsprogramme anstellen).

von Hans (Gast)


Lesenswert?

Ok, Danke!

von fb (Gast)


Lesenswert?

Hans schrieb:
> Leider funktioniert es ja naturgemäß nicht für die releas Version.
Da geht das eigentlich genauso wie in der debug Version

Du kannst die Projekte aber auch so konfigurieren, daß .dll und .exe im 
gleichen Verzeichnis landen:

ConfigurationProperties->General->OutputDirectory
ConfigurationProperties->Linker->General->OutputFile

In letzterer wird normalerweise auf $(OutDir) verwiesen, was dem Inhalt 
der ersten Einstellung entspricht.
Wenn Du also bei beiden Projekten die erste auf den gleichen Wert setzt 
(z.B. "$(SolutionDir)$(ConfigurationName)\" oder 
"$(SolutionDir)$(Configuration)\", je nach Studio Version), landen 
sowohl .dll als auch .exe dort.

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
Noch kein Account? Hier anmelden.