gpt4 book ai didi

c# - 需要将基于 C++ dll/h/lib/xml/exe 的 SDK 'wrap up' 转换为 COM 以在 C# 2.0 项目中使用

转载 作者:行者123 更新时间:2023-11-30 03:12:45 24 4
gpt4 key购买 nike

我刚拿到一个由 C++ dll、lib、exe 和各种 .h 文件组成的 SDK。我认为它是为 C++ 开发人员准备的。他们提供的示例项目及其文档都是用 C++ 编写的。我能够使用 Visual Studio 8 (2005) 启动它们并运行它们。他们确实像宣传的那样控制设备。但是这个需要使用的项目是在C#.Net 2.0中,这是不可更改的。

我的老板是一名 C++ 开发人员,他说我需要做的就是将其编译为 COM 对象,然后将 COM 对象导入到我的 C# 解决方案中。我的老板说,即使对不了解 C++ 编译的我来说,将 SDK“包装”为 COM 对象应该不到一个小时。

我之前在 C# 解决方案中使用过 COM 对象,所以一旦完成,我就可以从那里继续而不会出现问题。

但是,我不知道如何从 2 个 .dll 文件、1 个 .exe、1 个 .lib 文件、1 个 .xml 文件和 12 个 .h 文件生成 COM 对象。是否有可用资源告诉我该怎么做才能实现这一目标?

最佳答案

My boss was a C++ developer and says all I need to do is to compile it as a COM object and then import the COM object into my C# solution.

是的,但是将它编译为 COM 对象是“困难的”(我的意思是说你不能这样做)除非它已经实现了 COM API(如果它没有实现然后您需要先实现 COM API,然后才能将其构建为 COM 对象)。

有些书籍(例如,Essential COM)解释了如何使用 C++ 创建 COM 对象,但它并不平凡(对于构建 COM 对象,可能有比 更好的书籍基本 COM,以及比 C++ 更好/更简单的工具。

我认为您和/或您的老板有 3 个选择:

  1. 要求供应商将它们作为 COM 对象提供给您
  2. 设计一个 COM API 来包装 SDK 的 API。创建导出此 API 的 COM 项目(使用您选择的语言)。通过调用底层 SDK 方法来实现这些 API。为此,您可能需要了解 C++ 的人员,或者愿意在此项目上花费远远超过“一个小时”的时间。
  3. 忘记使用 COM;相反,将 SDK 构建为 DLL,并使用 PInvoke 从 .NET 代码调用它。

My boss says it should take less than an hour to "wrap" there SDK up as a COM object, even for me with no knowledge of C++ compiling.

根据您所说的,我不知道有什么方法可以做到这一点。

关于c# - 需要将基于 C++ dll/h/lib/xml/exe 的 SDK 'wrap up' 转换为 COM 以在 C# 2.0 项目中使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/417146/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com