2009-04-13 16 views
1

Microsoft fournit le code source de vshadow pour manipuler VSS (Volume Shadow Service [copie d'ombre]), et je l'ai modifié un peu, mais je veux en faire une dll si Je peux l'utiliser dans mes projets C#. Je ne sais pas exactement comment procéder, le code source est assez simple, et ça ne devrait pas être trop difficile, mais je ne sais pas vraiment par où commencer. Comment devrais-je le convertir en un DLL utilisable au lieu de compiler vers un exécutable?Conversion d'un C projet .exe ++ à un dll

Mise à jour: Quelqu'un a déjà fait: http://www.alphaleonis.com/2008/08/alphavss-bringing-windows-shadow-copy-service-vss-to-net/

Répondre

3

Vous devez modifier vos paramètres de projet dans Visual Studio pour créer une DLL. De plus, vous devrez définir des points d'entrée dll. Le VSS est un ensemble d'API COM, vous pouvez donc les appeler directement à partir de C# avec pinvoke, au lieu d'utiliser cet exécutable C++ wrapper. Puisque le SDK ne contient que des bibliothèques, pas de DLL, vous devrez créer un projet dll pour l'utiliser.

C'est un good blog-how-to.

Vous aurez besoin de télécharger le VSS SDK (si vous avez pas déjà).

Decent article on pinvoke.

Hope this helps.

+0

Quelles sont les dll VSS que j'ai besoin d'importer pour utiliser VSS à partir de C#? – Malfist

+0

Je ne vois que lib dans le SDK – Malfist

+0

Microsoft.VisualStudio.SourceSafe.Interop. Le mien était ici: c: \ Program Files \ Fichiers communs \ Microsoft Shared \ MSEnv \ PublicAssemblies \ Microsoft.VisualStudio.SourceSafe.Interop.dll. Je ne suis pas sûr de ce que pinvoke a à voir avec quoi que ce soit? Utiliser COM interop? (Ou suis-je manque quelque chose?) – Aardvark

-1

Une telle tâche peut aller de trivial à extrêmement complexe. Dans votre cas, le problème penche probablement vers la fin complexe.

La raison est parce que vous devez remplacer l'interface existante par une nouvelle série de fonctions que vous pouvez utiliser. Ces fonctions devront ensuite être exportées, vous pouvez donc les importer dans dotNet.

+0

Donc, poser une question liée à la programmation sur un babillard électronique lié à la programmation est hors sujet? – Malfist

+0

-1. Aucune information utile et une mauvaise attitude. La question est parfaitement valide et la dureté est relative ... – jheriko

+0

La question n'est pas comment créer une DLL, mais plutôt comment * convertir * un exe spécifique en une DLL. Tout ce qui manque de code serait considéré comme inutile. Je crois que j'avais des informations précieuses quand j'ai mentionné les mesures que l'on devrait prendre pour faire le travail. La question est mal formatée. – Ash