2010/07/05
VC++ 2005/2008, KB971090 업데이트로 인한 호환성 문제
언제부터인가 작업하고 있는 PC(Windows 7 x64)에서 프로그램을 빌드해서 다른 PC(XP SP2 x64) 에서 실행을 하면 아래와 같은 에러 메시지와 함께 실행이 되지 않는 문제가 발생하였다.
처음에는 이 문제가 Windows 7 에서 빌드할 때 문제가 되는 것이라 생각을 했었는데, 다른 XP 에서 빌드를 해도 동일한 상황이 벌어지는 경우가 종종 발생하였다. 아무리 재배포 패키기를 설치를 하여도 문제가 해결되지 않았는데, 결국에는 KB971090 업데이트로 인한 호환성 문제로 확인이 되었다.
KB971090 업데이트 후 바뀐 DLL 파일들과의 호환성 문제로 프로그램이 정상 동작하지 않는데 이럴 때 아래 코드를 StdAfx.h 의 #pragma once 바로 아래에 추가를 해 주면 이 문제에서 회필할 수 있다.
아니면 최신의 재배포 패키지를 설치하면 호환성 문제가 사라지게 된다. 이 후의 다른 프로그램과의 호환성을 위해서라도 특정 코드를 추가해 해결하는 것 보다 최신의 재배포 패키지를 설치 해 두는 것이 좋을 것 같다.
** 관련 링크 **
처음에는 이 문제가 Windows 7 에서 빌드할 때 문제가 되는 것이라 생각을 했었는데, 다른 XP 에서 빌드를 해도 동일한 상황이 벌어지는 경우가 종종 발생하였다. 아무리 재배포 패키기를 설치를 하여도 문제가 해결되지 않았는데, 결국에는 KB971090 업데이트로 인한 호환성 문제로 확인이 되었다.
KB971090 업데이트 후 바뀐 DLL 파일들과의 호환성 문제로 프로그램이 정상 동작하지 않는데 이럴 때 아래 코드를 StdAfx.h 의 #pragma once 바로 아래에 추가를 해 주면 이 문제에서 회필할 수 있다.
#ifndef __midl
#define _SXS_ASSEMBLY_VERSION "8.0.50727.762"
#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
아니면 최신의 재배포 패키지를 설치하면 호환성 문제가 사라지게 된다. 이 후의 다른 프로그램과의 호환성을 위해서라도 특정 코드를 추가해 해결하는 것 보다 최신의 재배포 패키지를 설치 해 두는 것이 좋을 것 같다.
** 관련 링크 **
Labels:
KB971090
,
TistoryOldPost
,
Visual Studio 2005 SP1
,
보안 업데이트
Subscribe to:
Post Comments
(
Atom
)
No comments :
Post a Comment