PInvoke错误:尝试写入或读取受保护的内存

时间:2018-05-17 21:45:26

标签: c# pinvoke calling-convention

我知道这个问题很多,但我试图切换调用约定但它没有用。 我在c#winforms代码中使用了c ++ dll。 我的函数完美地工作,直到return语句,它给了我这个错误。如果有人可以帮助我理解为什么我会贬低它。 这是我的c ++函数的结束:

ans += ";";
ans += rans;
cout << "returning value 2" << endl;
char* retval = new char[ans.size() + 1];
strcpy_s(retval,ans.size()+1, ans.c_str());
return retval;

ans是一个std :: string。

这是我的c#代码PInvoking并调用函数:

[DllImport("C:\\Users\\Boaz\\source\\repos\\Macro_Setter_DLL\\Debug\\Macro_Setter_DLL.dll", CallingConvention = CallingConvention.StdCall)]
static extern string Stop_Record();

string tmp = Stop_Record();

提前致谢!

0 个答案:

没有答案
相关问题