2009-04-13 11 views
1

Microsoft предоставляет исходный код vshadow для управления VSS (теневая служба тома [теневая копия]), и я немного изменил его, но я хочу сделать его в dll, поэтому Я могу использовать его в моих проектах на C#. Я не знаю точно, как это сделать, исходный код довольно прост, и это не должно быть слишком сложно, но я не знаю, с чего начать. Как мне следует преобразовать его в полезную dll вместо компиляции в исполняемый файл?Преобразование проекта C++ .exe в DLL

Update: Кто-то уже сделал это: http://www.alphaleonis.com/2008/08/alphavss-bringing-windows-shadow-copy-service-vss-to-net/

ответ

3

Вам нужно будет изменить параметры проекта в Visual Studio для создания DLL. Кроме того, вам нужно будет определить точки входа dll.

Однако VSS представляет собой набор COM API, поэтому вы можете вызывать их непосредственно из C# с помощью pinvoke, вместо того, чтобы использовать этот исполняемый файл Cube.

Поскольку SDK содержит только библиотеки, а не DLL, вам нужно будет создать проект dll для его использования.

Это good blog-how-to.

Вам необходимо загрузить VSS SDK (если вы еще этого не сделали).

Decent article on pinvoke.

Надеется, что это помогает.

+0

Что такое VSS-библиотека, которую мне нужно импортировать для использования VSS с C#? – Malfist

+0

Я вижу только lib's в SDK – Malfist

+0

Microsoft.VisualStudio.SourceSafe.Interop. Mine был здесь: c: \ Program Files \ Common Files \ Microsoft Shared \ MSEnv \ PublicAssemblies \ Microsoft.VisualStudio.SourceSafe.Interop.dll. Я не уверен, что пинвак имеет отношение ко всему? Использовать COM-взаимодействие? (или я что-то упускаю?) – Aardvark

-1

Такая задача может варьироваться от тривиального до чрезвычайно сложного. В вашем случае проблема, вероятно, зависит от сложного конца.

Причина этого в том, что вам необходимо заменить существующий интерфейс новым набором функций, которые вы можете использовать. Эти функции затем должны быть экспортированы, поэтому вы можете импортировать их в dotNet.

+0

Так что задавать вопрос, связанный с программированием, на доски объявлений, связанных с программированием, отключен? – Malfist

+0

-1. Нет полезной информации и плохого отношения. Вопрос совершенно правдоподобен и твердость относительно ... – jheriko

+0

Вопрос не в том, как создать DLL, а в том, как * конвертировать * конкретный exe в DLL. Все, что не хватает кода, будет считаться бесполезным. Я верю, что у меня была ценная информация, когда я упомянул о шагах, которые нужно предпринять, чтобы выполнить эту работу. Вопрос плохо отформатирован. – Ash

Смежные вопросы