1
2
我不知道有什么方法可以导出那种类型。如果您必须具有该函数签名,那么我将倾向于混合使用托管和本机导出(使用本机类型的托管函数无论如何都不能被其他语言使用),并且在调用本机导出时可能使用延迟加载,这样您就有机会以通常的.NET方式查找程序集时捕获错误。 但您的特定函数可能有问题,因为它在签名中同时使用托管类型和复杂的本机类型。 一般来说,最好的做法是不要在DLL边界上传递本机C++类,因为这会为您定义一个定义规则违规。
对于这种特殊情况,我的建议是生成一个实现
|
2
2
我在另一个论坛上收到了Mike Danes的解决方案: 基本上,解决方案是在程序集B中创建一个本地包装器(称为vectorofnativeb),它保存一个指向std::vector的指针或引用。导出vectorofnativeb并使其公开。将getmgdclassb方法更改为获取指针或引用vectorofnativeb。 [在此处发布此内容以备将来参考,并查看此处是否有人对此解决方案发表任何评论]。 |
Adam · 获取对列表中元素的引用 6 年前 |
NormX · 没有带字符串数组的存储类或类型说明符 6 年前 |
areify · 如何避免此代码中的内存泄漏? 6 年前 |
Nicola · C++CLI项目中非托管数据上的C#指针 6 年前 |
Matthias Hoste · 是否可以进行C++/CLI注入? 6 年前 |