2009-07-19 9 views
4

Ich versuche, einen einfachen .Net-Wrapper um einige grundlegende C++ - Code zu erstellen.MS VC++ wie DLL ohne vc redist erstellen

Der C++ - Code verlässt sich auf nichts in den vcredist dlls, also frage ich mich, ob ich mein Projekt einrichten kann, so dass diese DLLs nicht funktionieren müssen?

Ich würde es hassen, wenn meine Benutzer vcredist herunterladen und ausführen, nur damit eine einfache DLL funktioniert.

Antwort

8

Sie benötigen eine DLL mit der "Verwenden Sie die CRT als eine statische Bibliothek" Option zu verknüpfen.

Projekteigenschaften/Konfiguration/C/C++/Codegenerierung/Runtime-Bibliothek/Multithreaded (dh nicht jeder der "DLL" -Optionen).

+0

Dies scheint wie der richtige Ansatz, aber wenn ich es auf/MT setzen klagt es, dass dies nicht kompatibel mit/Clr ist - was ich denke, ist notwendig, um die .Net-Klasse (der Wrapper für die native C++ - Klasse) zu bauen – Steffen

+0

Ah Das stimmt wahrscheinlich. Aber wenn Ihre Benutzer .Net brauchen, ist es vernünftig anzunehmen, dass sie auch die relevanten CRT DLLs haben? – RichieHindle

+0

Nun, sie haben offensichtlich die CRT-DLLs, es ist die MSVCR90.DLL und ich mache mir ähnliche Sorgen - die VC++ spezifischen Sachen. Wenn ich versuche, eine Anwendung mit dieser DLL auszuführen, wie es ist, wird es beschweren, MSVCR90.DLL nicht zu finden :-((Sofern Sie vcredist oder Visual Studio nicht installiert haben) – Steffen