为了账号安全,请及时绑定邮箱和手机立即绑定

C#中的std :: string?

C#中的std :: string?

互换的青春 2019-11-20 14:14:54
我以为问题出在我的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则不起作用。
查看完整描述

3 回答

?
慕丝7291255

TA贡献1859条经验 获得超6个赞

std :: string和c#字符串彼此不兼容。据我所知,就interop而言,c#字符串对应于传递char*或wchar_t*使用c ++。

原因之一是std :: string可以有许多不同的实现,而c#不能假设您使用的是任何特定的实现。


查看完整回答
反对 回复 2019-11-20
  • 3 回答
  • 0 关注
  • 770 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信