我最近一直在从事 COM 互操作方面的工作。阅读 Nishant Shivakumar 所著的 C++/CLI in Action 相关书籍。我还浏览了Srinivas的这个链接,其中他很好地解释了如何使用 C++/CLI 在本机 C++ 中使用 C# 库。我下载了页面底部的代码..阅读它..并且喜欢它。我的应用程序很松散基于它。虽然在那个例子中我有一个问题(你可以在那里下载它)。在 C# 库“Worker.cs”中,如果我在 Worker 类中有一个方法,其签名如下:
public void GetStudent(ManagedStudent student,int ){....}
仅供参考:: 我需要 object 参数,因为我将从 Worker Class 中的该类访问一个方法。
在 C++/CLI 包装器项目 NativeInterface.h 中,我想导出一个方法,该方法将这个托管对象作为参数获取,这与示例不同。
__declspec dllexport void GetStudent(ManagedStudent^ obj)
C++/CLI 中对象的等价物是什么?
后来我想通过在我的本机 Win32 应用程序/DLL 中传递一个对象来导入这个方法来访问这个方法。我在本机 dll/App 中包含“NativeInterface.h”文件。但是在构建 dll/App..托管目标代码时出现错误需要 \clr option。
仅供参考:: 1. 我的 WIN32 dll/app 正在编译时没有 \clr 支持,而我的包装器支持 \clr 2. 我相信错误是因为句柄用作参数?我想在本机 app/dll 中访问 UnmanagedStudent(Object obj);那可能吗