QT+MinGW如何調用VS裏導出的動態庫(還沒找到解決辦法)

問題:

QT裏調用供應商給的.h、.lib、.dll,編譯不通過,找不到函數定義,.dll沒有加載成功。
       

嘗試找出原因:

  • 1、 在VS裏新建一個工程調用供應商提供的DLL,程序沒有其他功能,就是調用供應商DLL查看是否成功。
    1.1、 編譯成功,輸出信息:自動連上DLL。
    1.2、 運行失敗,錯誤原因:應用程序無法正常啓動。在網上查找這個原因對應的解決辦法,將debug改爲release後,變成了一個新錯誤:KernelBase.dll文件框架丟失或者損壞,這個問題沒有找到好的解決辦法。
  • 2、 懷疑自己VS調用動態庫的方法不正確。驗證:繼續在VS的這個工程裏,調用自己以前用VS導出的動態鏈接庫,運行成功。結論:自己調用動態庫的方法沒問題。
  • 3、 在QT裏新建一個工程調用供應商的DLL。這次別說運行了,連編譯都通不過。
  • 4、 懷疑自己QT調用動態庫的方法不正確。驗證:換了另一種調用方法。編譯仍不通過。調用自己以前用QT導出的動態庫,運行成功。結論:自己用QT調用動態庫的方法沒問題。
  • 5、 在網上查找“用QT調用VS導出的動態鏈接庫失敗”,覺得可能是因爲QT用的MinGW編譯器和VS用的編譯器不是一個體系。下一步打算給QT安裝一個MSVC編譯器。
  • 6、 懷疑自己調用供應商DLL的時候,函數參數(路徑)格式寫得不對。驗證:用程序打開該路徑下的一個文件並讀取,運行成功。結論:路徑合法。
  • 7、 CSDN論壇發帖提問,給出300論壇積分,帖子暫時還沒人回覆。
  • 8、 聯繫供應商,反饋問題。希望他們能在VS裏新建個工程測試一下給我們的DLL能不能正確運行。他們說他們測試過,但是用的他們的GUI測試程序測的。我運行他們的GUI測試程序,填入路徑和文件名後,點擊新建,然後程序崩潰退出。懷疑是沒有在XP系統或沒有連接硬件。供應商回覆,他們在win7下測試過也可以,第一個函數就是單純的創建文件不需要連接硬件也可以。

        三天過去了,沒有找到解決辦法。就這麼一個小問題,搞了這麼久,做了幾天項目,然後再看這個項目,它和幾天前一樣,啥也沒變,沒有進度。這種感覺就像自己在虛度光陰。
        然後說不想搞了,但是每天還是會花時間搞這個,那感覺,真是煩躁。
        開這個帖子記錄一下。我真的適合科研嗎?以後要幹這個嗎?是不是在找工作上要再規劃一下?是。

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