加载动态库运行程序时,出现这个错误,在网上找了半天没有找到解决方案,实在没办法写了一个最简单的示例程序,发现仍然没法通过,苦思冥想,最后无意中发现我动态链接库中的函数的定义为
extern "C" __declspec(dllexport) void _stdcall func(double* ,int ,double ,double ,double&,double& );
而我在调用动态库时,函数指针声明写成了
extern "C" __declspec(dllimport) void _stdcall func(double* ,double,double ,double ,double&,double& );
需要注意,第二个参数应该为int我误写为double了。
其实之前我主要到该点了,但觉得把int当成double,对结果应该没有影响就无视了这个笔误,结果,普通的函数调用时没有影响的,但如果是函数指针方式调用时,会导致后面的参数全部无法识别。