尝试读取或写入受保护的内存。这通常指示其他内存已损坏
在C#调用C++的DLL的时候提示出现此问题
说明, 使用StringBuilder并且分配一个固定长度是搜索了相关的文档说建议写固定长度,所以才这么写,不知道有何错误,还望各位达人帮忙查看
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并且分配一个固定长度是搜索了相关的文档说建议写固定长度,所以才这么写,不知道有何错误,还望各位达人帮忙查看
...全文
相关推荐
关于 尝试读取或写入受保护的内存。这通常指示其他内存已损坏。的解决方法
主要介绍了尝试读取或写入受保护的内存。这通常指示其他内存已损坏。的解决方法,有需要的朋友可以参考一下
Phonetic Bandbag Simulation
MATFOR4.1的demo中有个pbg项目(Phonetic Bandbag Simulation),无论怎么改,都有个错误“尝试读取或写入受保护的内存。这通常指示其他内存已损坏。”。查遍网络,最后弄清楚了,GC是单独的一个线程,跨线程释放内存就会造成这样的问题。这是修改过的文件,希望对您有用。 如果您使用多核,且您正在使用MATFOR4.1,不妨下载下来试试看。
C语言读取文件数据,写入内存
作为一个新手学习C语言读写数据,我整合了一下自己查找的一些资料,用C语言实现将一个文件读入内存中,里面有运行工具,和一个word文档代码。
EXCEL读取和写入
使用LABVIEW读取和写入Excel,使用Labview2017,可以是低版本,但是函数选板中至少要有报表生成部分。
IntelliJ IDEA设置显示内存指示器和设置内存大小的方法
主要介绍了IntelliJ IDEA设置显示内存指示器和设置内存大小的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下


