程序配置及部署

前言

开发完的程序移植到新电脑,为图简单总是直接将包含exe的Release文件夹拷贝过去,时长出现“应用程序无法正常启动(0xc000007b)”错误。不知所措。

部署Tips

1、vs2013安装目录\VC\redist下的dll是正统的MFCdll是面向分发的。
2、正确的部署途径还是应该参见MSDN部署本机桌面应用程序 (Visual C++)

VS环境变量及dll引用

我之前一直是将dll文件全部拷贝到Release或Debug目录和exe同目录下,但是库一多程序一多每个程序都要拷贝一份dll文件库,极大的占据了磁盘空间,现在我想把dll库放到环境变量中去,方案的可行性在网上查了一下资料:
环境变量与DLL等文件引用

VS环境变量过长问题

这是我很久之前遇到解决的一个问题,今天发现还有其他解决方法。
1、硬链接(这不是LINUX中的吗,十分惊奇,LINUX中硬链接等命令我还要复习下)

2、可是我想将不同库dll的路径都放到一个单独的环境变量,然后在Path中包含的方法: (原来是用%%来代替o(╥﹏╥)o)

3、动态链接库应该放置到Administrator的用户变量Path中
这个问题也一直困惑着我,明明系统变量Path中放置了正确的dll路径,但程序运行起来还是显示找不到dll。今天问了下老师,老师说要放在用户变量Path中,哇,还可以这样,系统变量不是相当于系统中所有用户的用户变量吗,windows不是多用户吗,一直用的是系统变量而忽略了用户变量······
顺便网上搜索了一下,能明确指明和解决这个问题的很少,看到了MSDN:

路径环境变量中列出的目录。注意,这并不包括应用程序路径注册键指定的每个应用程序路径。在计算DLL搜索路径时不使用App path键。

未解决

1、使用dependency确定依赖DLL
我用dependency去分析一个可正常执行的exe,出现错误,使我很迷茫:

Error: At least one required implicit or forwarded dependency was not found.
Warning: At least one delay-load dependency module was not found.
Warning: At least one module has an unresolved import due to a missing export function in a delay-load dependent module.

显示缺少库:

MSVCR90.DLL
API-MS-WIN-CORE-WINRT-ERROR-L1-1-0.DLL
API-MS-WIN-CORE-WINRT-L1-1-0.DLL
API-MS-WIN-CORE-WINRT-ROBUFFER-L1-1-0.DLL
API-MS-WIN-CORE-WINRT-STRING-L1-1-0.DLL
DCOMP.DLL
ELSCORE.DLL
GPSVC.DLL
IESHIMS.DLL
······

支持我吧