用vb调用 vcdll问题
大家好,我遇到个难题,请高分帮忙分析一下。
用vb调用 vcdll问题
vc部分代码
extern "C"
__declspec(dllexport) void __stdcall jichabiaozhun(int lentemp,float *xxtemp,float *outtemp);
void _stdcall jichabiaozhun(int lentemp,float *xxtemp,float *outtemp)
{ float sumtemp=0;
float avetemp=0,maxtemp=0,mintemp=0,jichatemp=0;
for(int i=0;i<lentemp;i++)//
{ sumtemp+=xxtemp[i] ;
}
avetemp=float(sumtemp/lentemp);
maxtemp=xxtemp[0], mintemp=xxtemp[0];
for( i=0;i<lentemp;i++)
{
maxtemp=(xxtemp[i]>=maxtemp)?xxtemp[i]:maxtemp;
mintemp=(xxtemp[i]<=mintemp)?xxtemp[i]:mintemp;
}
jichatemp=maxtemp-mintemp;
for(i=0;i<lentemp;i++)
{
outtemp[i]=(xxtemp[i]-avetemp)/jichatemp;
}
}
另外def 声明了 EXPORTS jichabiaozhun
vb部分:
Private Declare Function jichabiaozhun Lib "mydlltry2.dll" (ByVal a As Long, xx As Single, out As Single)
出现错误 内存不能为read。
请大家帮忙看看!
需要看源码我可以整个发给看看。
谢谢!
[解决办法]
你贴出来的代码没错,我怀疑错在 vb 调用 jichabiaozhun 的方式上。
你把 vb 中调用 jichabiaozhun 的代码部分贴出来
[解决办法]
你把 vb 中调用 jichabiaozhun 的代码部分贴出来
关键是传递给 jichabiaozhun 的那几个参数变量的 定义、赋值、运算语句不能少