将C ++ .exe项目转换为dll

时间:2009-04-13 17:45:38

标签: c# c++ marshalling shadow-copy dll

Microsoft提供vshadow的源代码来操作VSS(卷影服务[卷影复制]),我对它进行了一些修改,但我想把它变成一个dll,所以我可以在我的C#项目中使用它。我不确切知道如何去做,源代码相当简单,它不应该太难,但我真的不知道从哪里开始。我应该如何将其转换为可用的dll而不是编译为可执行文件?

更新:有人已经这样做了:http://www.alphaleonis.com/2008/08/alphavss-bringing-windows-shadow-copy-service-vss-to-net/

2 个答案:

答案 0 :(得分:3)

您需要在Visual Studio中更改项目设置才能创建DLL。此外,您还需要定义dll入口点。

但是,VSS是一组COM API,因此您可以使用pinvoke直接从C#调用它们,而不是使用此包装器C ++可执行文件。

由于SDK只包含库而不是DLL,因此您必须创建一个dll项目才能使用它。

这是good blog-how-to

您需要下载VSS SDK(如果您还没有)。

Decent article on pinvoke.

希望这有帮助。

答案 1 :(得分:-1)

这样的任务可以从微不足道到极其复杂。在您的情况下,问题可能倾向于复杂的结束。

原因是您需要使用一组可以使用的新函数替换现有接口。然后需要导出这些函数,以便您可以在dotNet中导入它们。