我认为这个问题是我的C++函数里面,但我想在C++ DLL这个在C#中的std :: string?
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++桥解开字符串? [这里](http://stackoverflow.com/questions/267057/creating-a-mixed-mode-c-bridge-from-c-to-c)是关于这个问题的SO问题。 – FeatureCreep 2009-05-17 13:11:58