前幾天分享了置頂窗口API后,有粉絲咨詢問題,截圖如下:
dll打包出錯(cuò)。而且很奇怪的是,自己電腦沒問題,換電腦就不行。
這種由于外部條件變化而引起的問題,一般都要列舉多種可能性,一個(gè)一個(gè)排除。
最重要的成功秘籍是:我自己親手調(diào)試。
周末終于有空,遠(yuǎn)程看了下癥狀。
網(wǎng)上百度了下,確實(shí)很多人問,但是沒人回答。
動(dòng)態(tài)調(diào)用的dll,路徑?jīng)]啥問題,exe路徑也正常。發(fā)dll給我,我電腦也正常。
不過,憑借我多年經(jīng)驗(yàn),凡事都有解決辦法。
由于提示外部依賴問題,由于是dll文件,業(yè)內(nèi)有一個(gè)查看dll的軟件,叫dependency walker,免費(fèi)的,可以查看依賴(這個(gè)粉絲壓根不知道有這個(gè)工具)
首先用這個(gè)軟件查看,除了粉絲自己用VS寫的dll外,此dll還依賴了其他dll。
所以問題定位在:此dll調(diào)用了其他dll。
那么,用C++的朋友肯定就熟悉了。
比如在用QT或MFC寫代碼時(shí)候,總會(huì)有些底層依賴,打包發(fā)布時(shí)候要一同發(fā)布,然后放在一個(gè)目錄下。
就算不用C++,搞汽車電子,用CAN的小伙伴,如果用XX功的,或者盜版XX功的CAN卡,也會(huì)遇到這個(gè)問題,該驅(qū)動(dòng)根目錄下有個(gè)一個(gè)dll,然后這個(gè)dll調(diào)用了其他dll,打包時(shí)候,都要一起拷貝走。
然而,這位粉絲裝了VC引擎庫,拷貝了很多dll,依舊沒有解決?
就這么算了??
然后我出殺手锏,dll是粉絲自己寫的,我看了源碼下下VS下的配置,發(fā)現(xiàn)生成dll,居然選了Debug。
恩,用Debug不出Bug才怪。趕緊讓粉絲換成了Release。
解決了!
那么,為什么一開始粉絲自己電腦沒問題,我電腦沒問題,而換臺(tái)電腦就有問題呢?
因?yàn)榉劢z電腦有VS2019,我電腦有VS2019,粉絲有2019不奇怪,他要用C語言寫dll,我電腦反正啥軟件都有,反而不適合測(cè)試。
解決了就好吧。
雖然解決這問題,好像與LabVIEW無關(guān)。
但是你說沒有關(guān)系吧,其實(shí)關(guān)系也大。
審核編輯:劉清
-
dll
+關(guān)注
關(guān)注
0文章
114瀏覽量
45266 -
LabVIEW
+關(guān)注
關(guān)注
1954文章
3647瀏覽量
320404 -
API串口
+關(guān)注
關(guān)注
0文章
13瀏覽量
4829
原文標(biāo)題:【經(jīng)驗(yàn)分享】粉絲提問:LabVIEW調(diào)用dll外部依賴出錯(cuò)
文章出處:【微信號(hào):小草手把手LabVIEW,微信公眾號(hào):小草手把手LabVIEW】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論