背景: 由于项目需要,在C#工程上常常会调用外部语言库DLL,但有时会出现这样那样的问题,比如出现堆栈溢出的问题,还有在调用c++程序图像处理函数的DLL时,出现图像显示不出来的问题。
跳坑方法:
- 调用外部DLL库报错堆栈溢出的问题:将项目属性页中的多线程调试(/MTd)改为多线程调试DLL(/MDd)即可;
- 解决c++封装的dll图像处理函数在c#上运行结果不一致,且有部分图像显示不出来:
原因是C++接口使用的是float型,C#调用并没有float的转换,用double替换float就会出现问题,将c++接口参数类型float改为double类型即可。