转换 C++ .exe 项目到 dll

发布于 2024-07-16 20:18:41 字数 430 浏览 8 评论 0原文

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

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

Microsoft provides the source code of vshadow to manipulate VSS (Volume Shadow Service [shadow copy]), and I've modified it a bit but I want to make it into a dll so I can use it in my C# projects. I don't know exactly how to go about doing that, the source code is fairly simple, and it shouldn't be too hard, but I don't really know where to get started. How should I go about converting it to a usable dll instead of compiling to a executable?

Update: Someone has already done this: http://www.alphaleonis.com/2008/08/alphavss-bringing-windows-shadow-copy-service-vss-to-net/

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

叹梦 2024-07-23 20:18:42

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

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

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

这是一个好的博客操作方法

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

有关 pinvoke 的不错的文章。

希望这会有所帮助。

You will need to change your project settings in Visual Studio to create a DLL. In addition you will need to define dll entry points.

However, the VSS is a set of COM API's, so you can call them directly from C# with pinvoke, instead of using this wrapper C++ executable.

Since the SDK only contains libs, not DLL's you'll have to create a dll project to use it.

This is a good blog-how-to.

You'll need to download the VSS SDK (if you haven't already).

Decent article on pinvoke.

Hope this helps.

爱的十字路口 2024-07-23 20:18:42

这样的任务可以是微不足道的,也可以是极其复杂的。 就您而言,问题可能倾向于复杂的结果。

这样做的原因是因为您需要用一组可以使用的新功能替换现有界面。 然后需要导出这些函数,以便您可以将它们导入到 dotNet 中。

Such a task can range from trivial to extremely complex. In your case, the issue probably leans towards the complex end.

The reason for this is because you need to replace the existing interface with a new set of functions that you can use. These functions will then need to be exported, so you can import them in dotNet.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文