今天中午,把自己写的游戏拷到别人机器上测试运行,为了弄明白怎么配置动态链接库,忙活了一中午,总算可以在别人电脑上正常运行了。现在把具体操作跟大家分享下哈,希望对大家有所帮助。
用VS2008编的MFC程序需要哪些dll支持在目标机器上安装.NET Framework,如果你用了.NET的框架类,就需要此平台支撑。用静态链接到MFC库,可以解决dll的大多数问题,但是程序体积明显增大。
给你另外两个建议:
1.在VS2008环境中运行程序的Release版本,观察调试窗口中,程序加载了哪些库文件(DLL,ocx等)。
2.用VS2008命令行工具的dumpbin命令,dependents和import参数分别分析以下你的程序依赖哪些库,需要引入哪些库。
个人推荐使用第二个方法。安装完VS后,找“菜单》vs...》visual studio tool》visual studio ...命令提示",运行它,输入
dumpbin /dependents xxx.exe
命令,可查看到exe文件所引用到的dll动态链接库。(注:需要将 ”命令提示“ 的路径指到xxx.exe所在路径,或者将xxx.exe拷贝到vs/vc目录下)然后将所需要的dll文件从system32目录下拷贝到xxx.exe所在路径。当然,有些dll不需要拷贝,像gdi32.dll
kernel32.dll user32.dll comctr32.dll等,windows操作系统已经自带安装了。
kernel32.dll user32.dll comctr32.dll等,windows操作系统已经自带安装了。
图1 win32应用程序分析截图
图2 MFC程序分析截图
红色圈起来的dll,要到system32目录下拷出来。蓝色的部分为MFC运行库,需要到VS目录下拷出来。
对于MFC程序的运行,需要VC运行库。所以我们需要将运行库拷贝到应用程序目录下。vc运行库可以在vs》vc》redist目录下面找到
。
。
图3 vc运行库
图4 vc运行库(调试版)
注意:拷贝时根据需要将这几个文件夹拷贝到应用程序目录,不能直接将dll拷出来!下图是我配置的程序截图:
由于在我周围很难找到一个电脑完全没装过VS相关程序的电脑,所以上面的测试有可能不准确,敬请大家提意见。