)
现有上位机开发基本都是二次开发很少是原生开发因此一般都需要将供应商提供的开发包进行调用在开发包基础上进行二次开发开发包中文件类型有很多我主要是基于Windows系统的开发包二次开发主要文件类型为.h、.lib、.dll。在之前的博客中我们能够在VS2022上运行成功并弹出UI界面但在根据进行实际编程前需要将开发包中的文件加载或者能让VS2022软件识别到需要调用的文件路径在哪里、调用的文件名称是什么。我这边参照的博客是来自稀土掘金的鲁班代师链接如下https://juejin.cn/post/7200297595474624573文章讲解很详细我就不进行重复说明讲我遇到的问题在VS2022链接器-输入-附加依赖项中只需要添加好需要调用的.lib文件名称就行了不要添加.dll文件名称。一开始我按照博客在附加依赖项中添加了.lib和.dll文件名称并将供应商提供的.dll文件全部复制在生成的exe文件下进行编译的过程中发现报错1LINK : fatal error LNK1104: 无法打开文件“***.dll”然后我到输出文件路径下去查看是否有.exe文件生成输出文件路径可以右键点击VS2022中创建的项目名称选择属性在弹出的窗口界面配置属性-常规-输出目录进行查看就可以知道本项目生成的exe文件地址了一般在创建的项目文件夹下我的输出文件路径D:\UICPP\QtWidgetsApplication1\x64\Debug在改文件路径下有.log文件点击进去就可以看到具体的报错信息了。在输出文件下没有找到生成的exe文件我首先将报错复制在网上查找解决办法但是解决方法只是提供了思路对于小白而言按照解决思路去解决问题反而一头雾水无从下手。在查找一番博客后我还是没有解决但我确定一点在没有进行开发包文件加载前程序本身可以正常运行在按步骤添加之后反而报错那就说明在添加过程中存在问题。1.可以排除的是添加文件的文件夹路径一般不会出现问题但要是添加错了文件夹就当我没说2.可以确定在添加附加依赖项或将.dll文件复制在exe文件下一个或者两者都存在问题。3.将需要加载的dll文件全部删除重新运行发现还是报相同的错误可以暂时排除掉dll文件的事情4.在删除dll文件的基础上将附加依赖项的文件名称也全部删除重新运行运行成功OK可以确定问题出在这里。附加依赖项中只能添加.lib文件如果加入.dll文件就会报上面的错误。但我们的目的是什么是用VS2022调用开发包文件。在将附加依赖项的文件名称删除之后尝试在main.cpp文件调用开发包中的结构体、头文件这些都是没有问题的但这并不意味着我们将开发包中的文件全部加载成功我们进行二次开发是需要调用现有的函数的供应商提供的.lib、.dll文件就是函数调用的输出文件因此我在.cpp文件尝试调用开发包中的函数在编写过程中没有报错但是运行过程中出现报错报错内容依旧是系统找不到.dll文件此时只需要将开发包中的.dll文件放到exe文件下就行运行无报错成功出现窗口弹窗。