我从硬件供应商处获得了一个.h文件,两个.lib文件,一个.dll文件和一个小型测试项目,以便与他们的硬件进行通信.
编译和运行他们的测试项目工作正常.值得注意的是:他们不使用.dll.我可以抛弃dll目录及其所有内容,一切正常.
为了开始,我只需将代码的通信部分(连接,断开连接并发送命令)复制到我的项目中.这实际上就是你所能做的一切.我已经包含.h文件并指向包含.lib文件的目录.就像在微小的测试项目中一样.这一切都编译,但当我尝试运行该项目时,它抱怨它缺少.dll文件.
谁能解释一下发生了什么? libs和dll应该如何工作?
解决方法
测试项目是
statically链接 – lib包含在exe中.
您的项目是dynamically链接 – 引用了dll,因此在运行时需要.
有关更多信息,请参见Stack Overflow question.