用VC2013制作了个生成二维码的DLL,目的是给VBA调用。
本机编译后,运行正常。但在目标机器上却提示“VBA错误信息:找不到指定的文件“xxx.dll”(错误 53)”。
然后换用CodeBlocks+MingW编译,运行正常。
网上也查了很多方法,也无法解决。
最后突然想到,是不是目标机器缺少运行库?
然后网上找VC运行库打包安装到目标机器,果然运行正常。
因此,更好的解决方案是把用到的运行库函数静态链接到目标程序中(VC默认是动态链接,目标程序不包含运行库函数代码)。
设置方法:项目--属性页--C/C++ --代码生成--多线程(/MT)
问题是解决了,但VBA的错误提示迷惑性较大,其中细节有空再深究。