CxImage DLL 链接错误解决方案

 因为项目需要,要使用CxImage进行图像处理,于是开始了学习之旅。但很不顺利....

 

      其实CxImage提供了这么多的工程,编译出来无非就是个库,但我确出现了个链接的错误,就这个链接错误花了我两天的时间解决。

 

    当出现dll连接错误的时候,我的第一感觉就是,调用约定有问题!但找了一下,没有找到调用约定的问题,类都是使用-decse 的调用约定。

 

接着我想是我的工程配置有问题,于是我去比对CxImage提供的demo工程,还是没有发现有什么不对的地方。应该说我的解决问题的方向是对的,可惜没有深入的去找到问题。第二天的时候,才沉下心了,找到了真正的问题。

 

因为CxImage提供的工程编译出来的是multebyte 不是Unicode 所以编译出来的lib是不一样的,所以会出现无法链接的问题!

bool __thiscall CxImage::Load(wchar_t const *,unsigned long)"

这是用工具看dll导出的名称?Load@CxImage@@QAE_NPBDK@Z

这是无法链接工程提示的名称?Load@CxImage@@QAE_NPB_WK@Z
 

比对后发现就D 和-W的不同

 

查看网络资料,D表示char -Wb表示wchar  问题出来拉!

 

查看工程属性general 的char set(字符集)果然是这里不同!!!!

 

总结一下:

当发现DLL无法链接的时候,问题肯定出在lib,这时你要看你的lib是不是最新的,和.h文件的描述是一致的。

注意调用约定的问题!

注意UNICODE的问题!

注意dll hell!!

你可能感兴趣的:(网络,dll,工具,图像处理)