【发布时间】:2018-04-05 15:25:08
【问题描述】:
我有一个 C# 项目,需要我使用用 C++ 编写的 SDK。我对 C++ 有点陌生,但我设法找到了我需要的所有重要函数和类。
根据我所学到的,我想 C++/CLR 将是我最好的选择。
SDK 本身主要使用一个名为“VssSDK.dll”的 DLL,它带有多个头文件。
现在是 2018 年,所以我希望有某种方法可以将非常大的 DLL 转换为我可以在我的 .NET 应用程序中使用的东西无需花费 10 小时创建标头以及不使用 CLR 的内容(这就是他们创建包装器的意思吗?)。
我希望这个线程对任何需要承担相同任务的人有用:将旧 DLL 导入 C# 项目。
任何指南和信息都会有所帮助。
- SDK 在 Visual Studio 2010 上编译
- VssSdk.ddl 是一个共享库
- 我需要重新使用 VssSdk.dll 中包含的类
- 需要兼容 .NET 使用 4.6.2 框架
- VssSdk.dll 需要数百个函数和类
- 我还没有设法将 SDK 演示迁移到 VS2017 中
【问题讨论】:
-
如果您担心花费“10 个小时”将大型 C++ 项目转换为 .NET,我根本不会转换它。更好的选择是编写一个包装器。
-
嗨罗恩!有没有办法自动化创建包装器的过程?
-
不完全,但有工具可以帮助,见:social.msdn.microsoft.com/Forums/vstudio/en-US/…
-
链接坏了,但是可以在github上找到:github.com/kthompson/PInvokeTool