【发布时间】:2010-10-26 20:23:38
【问题描述】:
我认为问题出在我的 C++ 函数中,但我试过了
C++ dll 中的 C++ 函数:
bool __declspec( dllexport ) OpenA(std::string file)
{
return true;
}
C#代码:
[DllImport("pk2.dll")]
public static extern bool OpenA(string path);
if (OpenA(@"E:\asdasd\"))
我收到内存损坏的异常,为什么?
如果我删除 std::string 参数,效果很好,但使用 std::string 就不行了。
【问题讨论】:
-
也许您可以通过创建一个解包字符串的托管 c++ 桥来解决它? Here 是关于这个主题的一个 SO 问题。