2009-04-13 14 views
1

Microsoft bietet den Quellcode von Vshadow VSS (Volume Shadow Service [Schattenkopie]) zu manipulieren, und ich habe es ein bisschen geändert, aber ich möchte es in eine DLL so machen Ich kann es in meinen C# -Projekten verwenden. Ich weiß nicht genau, wie ich das machen soll, der Quellcode ist ziemlich einfach und sollte nicht zu schwer sein, aber ich weiß nicht wirklich, wo ich anfangen soll. Wie soll ich es in eine brauchbare DLL konvertieren, anstatt es zu einer ausführbaren Datei zu kompilieren?Konvertieren eines C++. Exe-Projekts in eine DLL

aktualisieren: Jemand hat dies bereits getan: http://www.alphaleonis.com/2008/08/alphavss-bringing-windows-shadow-copy-service-vss-to-net/

Antwort

3

Sie benötigen, um Ihre Projekteinstellungen in Visual Studio zu ändern, um eine DLL zu erstellen. Außerdem müssen Sie DLL-Einstiegspunkte definieren. Das VSS ist eine Gruppe von COM-APIs, so dass Sie sie direkt von C# mit pinvoke aufrufen können, anstatt diese ausführbare Wrapper-C++ - Datei zu verwenden.

Da das SDK nur Bibliotheken enthält, nicht DLLs, müssen Sie ein DLL-Projekt erstellen, um es zu verwenden.

Dies ist ein good blog-how-to.

Sie müssen die VSS SDK herunterladen (wenn Sie nicht bereits haben).

Decent article on pinvoke.

Hoffnung, das hilft.

+0

Welche VSS-DLLs muss ich importieren, um VSS aus C# zu verwenden? – Malfist

+0

Ich sehe nur libs im SDK – Malfist

+0

Microsoft.VisualStudio.SourceSafe.Interop. Meine war hier: c: \ Programme \ Gemeinsame Dateien \ Microsoft Shared \ MSEnv \ PublicAssemblies \ Microsoft.VisualStudio.SourceSafe.Interop.dll. Ich bin mir nicht sicher, was Pin-Invoke mit irgendetwas zu tun hat? Verwenden Sie COM-Interop? (oder fehlt mir etwas?) – Aardvark

-1

Eine solche Aufgabe kann von trivial bis extrem komplex sein. In Ihrem Fall neigt sich das Thema wahrscheinlich dem komplexen Ende zu.

Der Grund dafür ist, dass Sie die vorhandene Schnittstelle durch eine neue Reihe von Funktionen ersetzen müssen, die Sie verwenden können. Diese Funktionen müssen dann exportiert werden, damit Sie sie in dotNet importieren können.

+0

So fragen Sie eine Programmier-Frage auf einer Programmier-Message-Board ist off Thema? – Malfist

+0

-1. Keine nützliche Information und eine schlechte Einstellung. Die Frage ist absolut gültig und die Härte ist relativ ... – jheriko

+0

Die Frage ist nicht, wie man eine DLL erstellt, sondern wie man eine bestimmte exe in eine DLL umwandelt. Alles andere als Code würde als nutzlos betrachtet werden. Ich glaube, dass ich wertvolle Informationen hatte, als ich die Schritte erwähnte, die man ergreifen sollte, um den Job zu machen. Die Frage ist falsch formatiert. – Ash