电子说
前几天分享了置顶窗口API后,有粉丝咨询问题,截图如下:
dll打包出错。而且很奇怪的是,自己电脑没问题,换电脑就不行。
这种由于外部条件变化而引起的问题,一般都要列举多种可能性,一个一个排除。
最重要的成功秘籍是:我自己亲手调试。
周末终于有空,远程看了下症状。
网上百度了下,确实很多人问,但是没人回答。
动态调用的dll,路径没啥问题,exe路径也正常。发dll给我,我电脑也正常。
不过,凭借我多年经验,凡事都有解决办法。
由于提示外部依赖问题,由于是dll文件,业内有一个查看dll的软件,叫dependency walker,免费的,可以查看依赖(这个粉丝压根不知道有这个工具)
首先用这个软件查看,除了粉丝自己用VS写的dll外,此dll还依赖了其他dll。
所以问题定位在:此dll调用了其他dll。
那么,用C++的朋友肯定就熟悉了。
比如在用QT或MFC写代码时候,总会有些底层依赖,打包发布时候要一同发布,然后放在一个目录下。
就算不用C++,搞汽车电子,用CAN的小伙伴,如果用XX功的,或者盗版XX功的CAN卡,也会遇到这个问题,该驱动根目录下有个一个dll,然后这个dll调用了其他dll,打包时候,都要一起拷贝走。
然而,这位粉丝装了VC引擎库,拷贝了很多dll,依旧没有解决?
就这么算了??
然后我出杀手锏,dll是粉丝自己写的,我看了源码下下VS下的配置,发现生成dll,居然选了Debug。
恩,用Debug不出Bug才怪。赶紧让粉丝换成了Release。
解决了!
那么,为什么一开始粉丝自己电脑没问题,我电脑没问题,而换台电脑就有问题呢?
因为粉丝电脑有VS2019,我电脑有VS2019,粉丝有2019不奇怪,他要用C语言写dll,我电脑反正啥软件都有,反而不适合测试。
解决了就好吧。
虽然解决这问题,好像与LabVIEW无关。
但是你说没有关系吧,其实关系也大。
审核编辑:刘清
全部0条评论
快来发表一下你的评论吧 !