VS程序部署
目前VC2008发布的程序带了很多dll.2.config文件,任何一个二进制文件如果没有配置或配置错误,将使得对MFC和CRT的库的
依耐关系产生混乱,可能造成程序不能运行,采用下述方法把config文件编译进二进制程序中, 同样的,也是强制依耐当前目录下的MFC和CRT的库. 附件是去掉配置文件重新编译后的WBOX.
1,在所有C++项目中添加文件targetsxs.h;
2,在项目属性中,”配置属性->C/C++->命令行”中输入 /FI targetsxs.h;
3, 在项目属性中,”配置属性->清单工具->输入和输出->嵌入清单”,选择为”是”.
targetsxs.h的信息如下:
#pragma once
#ifndef __midl
#define _SXS_ASSEMBLY_VERSION"9.0.30729.9463"
#define _CRT_ASSEMBLY_VERSION_SXS_ASSEMBLY_VERSION
#define _MFC_ASSEMBLY_VERSION_SXS_ASSEMBLY_VERSION
#define _ATL_ASSEMBLY_VERSION_SXS_ASSEMBLY_VERSION
#ifdef __cplusplus
extern "C"{
#endif
__declspec(selectany)int _forceCRTManifest;
__declspec(selectany)int _forceMFCManifest;
__declspec(selectany)int _forceAtlDllManifest;
__declspec(selectany)int _forceCRTManifestRTM;
__declspec(selectany)int _forceMFCManifestRTM;
__declspec(selectany)int _forceAtlDllManifestRTM;
#ifdef __cplusplus
}
#endif
#endif
VS调试程序配置:
VS2008下的配置
工具-》选项->调试->符号
加入PDB位置即可