jetqu 发表于 2008-8-18 14:26:57

LR调用VS2005生成的DLL

1. 问题描述:

最近要开发一个自动化测试的DLL文件,并用开发工具为VS2005,但是发现它不能在未安装VS2005的机器上进行调用,并运行。经过长时间转换调试,及搜索资料。现在解决方案如下:希望对其它人有所帮助。其也适用其其它C++调用相关的程序

2. 解决方案:

“因为没有msvcr80.dll
可以改一下编译选项 多线程dll(/MD)改成多线程(MT)这样就静态链接,
也可以从你的vc8安装盘上找到再分发包vcredist_xxx.exe和你的程序捆绑安装。”

方法一:
在C:Program FilesMicrosoft Visual Studio 8VCredi
stDebug_NonRedistx86Microsoft.VC80.DebugCRT 下找到了下列文件:

msvcm80d.dll
msvcp80d.dll
msvcr80d.dll
Microsoft.VC80.DebugCRT.manifest

把这几个文件拷贝到目标机器上,与运行程序同一文件夹或放到system32下,就可以运行那个程序了。

方法二:
VS2005 项目属性-》配置属性修改“C/C++/Code Generation”中的运行时库选项,将/MD或/MDd 改为 /MT或/MTd,这样就实现了对VC运行时库的静态链接,在运行时就不再需要VC的dll了。

iori 发表于 2008-8-18 14:55:27

顶一个

sqlserveroracle 发表于 2008-8-18 17:26:15

yeah.Good way to resolve the dll problem due to the objective machine don't setup vs2005.
but i want to say: the **d.dll is just debug library,if no need to debug the application,
you should copy the release library to objective machines or the your program statically compile and link that library.
页: [1]
查看完整版本: LR调用VS2005生成的DLL