先把错报上来给大家看,这个错折磨了我三天。。。。总结就是自作孽不可活
我呢,想要利用vlc-qt库自己编译一个库。开始照着几篇文档做
https://www.cnblogs.com/lvdongjie/p/9805214.html
这个是QT Creater的工程。我把它移植到了VS2015+QT上,然后报如下错误
找了两天答案,都不行,后来看到这个链接https://www.cnblogs.com/hbccdf/p/dllchecktoolandsyswow64.html
然后我就把系统文件给动了。。。还好没多大影响。然后用depends查找发现,虽然我的工程都配在32位下,但有些dll文件都是64位的,所以我怀疑文件错了,打算自己重新编译自制一个vlc-qt的库
https://blog.csdn.net/octdream/article/details/82079907
按照上述链接做了一遍。。。然后这个错就消失了,咋消失的我也不清楚。就变成了无法定位程序输入点的错了(后来再用原来的现成的库发现也可以正常运行了,就是那个00007b的错误不知道为啥消失了。
我感觉我没说清楚再说一遍,0007b的错我以为是现成的库有问题,可能是64位的不匹配等内部原因,怀疑是库的问题,所以想自己编一个库,结果自己编完库后,用原来的现成的库和自己编的库都正常使用了。。。。。。请大神解释)
无法定位程序输入点这个错呢,我就一直点确定,有好几十个弹出来,每一个都是不同的dll,但相同的是都是plugins里的文件找不到。耐心点完以后竟然可以正常运行。所以现在想来就是那些dll是多余的,但他们找不到就告诉我们一下,所以才会不影响运行。但每次都要点那么多次太麻烦了,问题还是要解决的,我在网上找的方法基本都不对。
https://www.xuebuyuan.com/1039768.html
这里说dll污染,我觉得有道理,因为它多余找不到又能正常运行,但按照什么环境变量的方法都没成功。
因为工作进度紧张,各种事我冷静不下来,就是乱找答案,麻爪的感觉。
今天我让自己冷静下来,静静地分析我之前都做过什么,哪里出了问题。报的错有什么特点。然后终于成功了,心里的石头落了地。
我发现弹出的错误并不是plugins里所有的dll都找不到,而是只有一部分找不到。(我开始一直以为是自己配置库、依赖项等出了差错,因为基础不好,配置环境一直没太明白,怀疑是没配置对,没指定对的地方)。然后查找文档发现这个plugins是从vlc2.0版本里的plugins复制过来的。但我回到vlc2.0里面打开plugins后发现里面正是缺少那些弹出的库。怎么我从这里移走的复制到c盘的,为什么c盘会多了这么多dll呢?我开始以为是系统自带的,或者qt自带的。但后来一想,当初复制进来的时候是覆盖了原始的。原始的是哪来的呢?原始的是vlc3.0里面的plugins,我恍然大悟,当初在下载vlc2.0前我下载了vlc3.0,里面的plugins被复制到了c盘指定位置。然后vlc2.0的plugins复制过来后只是替换了重复的,没重复的还放在里面,而那些没重复的就是一个个弹出来找不到的dll文件!!!
解决方法如下:
将c盘指定位置的原来放的vlc3.0的plugins删掉,然后将vlc2.0的plugins复制进来,错就没了。。。。。。
解决后觉得好简单,为啥自己这么马虎,迟钝。
