永发信息网

c#调用c++dll 尝试写入内存失败

答案:2  悬赏:40  手机版
解决时间 2021-03-07 05:17
  • 提问者网友:星軌
  • 2021-03-06 09:23
char* __stdcall setTheta(float x,float y,float x1,float y1){

char* result;
strcpy ( result,"1") ;
return result;
}

[DllImport("Project2.dll", EntryPoint = "setTheta", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
public static extern string setTheta(float x, float y, float x1, float y1);

这么简单的语句。。。错在哪了?求指教
最佳答案
  • 五星知识达人网友:长青诗
  • 2021-03-06 10:39
你定义了一个result指针,但是你没有个这个指针分配内存,赋值的时候,可能访问到了重要内存,所以导致错误
全部回答
  • 1楼网友:蕴藏春秋
  • 2021-03-06 11:50
不用管它 c#对比c++的优势之一就是它的内存释放机制上 除非你手动分配了内存否则不需要释放
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯