我正在尝试构建一个 C# 小部件以与 C++ 服务架构一起运行。我正在利用现有的 C++ 接口服务来发布/订阅数据,并将其连接到 C# 可视化的回调。
所以我有一个 C# 项目和 C++ 数据接口项目的解决方案。C++ 接口项目使用 /clr、/MDd 和 /EHa 编译,但它依赖于使用 /EHsc 和 MTd 编译的许多库。当这些标志不匹配时,链接器不喜欢它。
如果我将数据接口更改为使用 /MTd 和 /EHsc 之类的依赖项,它会告诉我这与 /clr 不一致。我假设我必须让 C++ 数据接口使用 /clr 进行编译,这样它才能与 C# 可视化对话,对吧?但是我不拥有 C++ 项目的依赖库,所以我无法更改它们的编译方式。
所以我的问题是,当 DLL 具有使用 /MTd 和 EHsc 选项编译的依赖项时,您能否让 C# 应用程序与 C++ DLL 通信?