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!!

 

PS:文本比較差,歡迎各位就相關問題進行諮詢。Q:530066322

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章