尝试读取或写入受保护的内存。这通常指示其他内存已损坏

豆丁_ 豆丁_ 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
在C#调用C++的DLL的时候提示出现此问题

int tempLength=10;
float[] speedList = new float[tempLength];
float[] fypList = new float[tempLength];

for (int i = 0; i < tempLength; i++)
{

speedList[i] = float.Parse(vibDateList[i].RPM.ToString());
fypList[i] = float.Parse(vibDateList[i].FONEX.ToString());

}
StringBuilder[] symIDList = new StringBuilder[5];
symIDList.SetValue(new StringBuilder(1024), 0);
symIDList.SetValue(new StringBuilder(1024), 1);
symIDList.SetValue(new StringBuilder(1024), 2);
symIDList.SetValue(new StringBuilder(1024), 3);
symIDList.SetValue(new StringBuilder(1024), 4);
DiagnosisPro(speedList, fypList, 6000F, 50F, ref symIDList);



[DllImport(@"E:\DigsAlgorithm.dll")]
public static extern void DiagnosisPro(float[] speedList, float[] fypList, float StaticSpeed, float StaticFyp, ref StringBuilder[] symIDList);





void _stdcall DiagnosisProc(float speed[AryCount],
float fyb[AryCount], //swing list in time section
float StaticSpeed, //Speed condition
float StaticFyp, string ret[AryCount]);


说明, 使用StringBuilder并且分配一个固定长度是搜索了相关的文档说建议写固定长度,所以才这么写,不知道有何错误,还望各位达人帮忙查看
...全文

相关推荐

评论 10
收藏 已收藏
分享
返回顶部
豆丁_
C# 111,129 成员 642,540 内容