2012년 5월 23일 수요일

vc++ 디버그 모드로 빌드된 파일 배포

vc++ (vs2008 sp1 기준) shared dll 옵션과 디버그 모드로 빌드된 dll/ocx/exe 등의 파일을

아무것도 설치되지않은 타겟 머신에 실행하려면,

C:\Program Files\Microsoft Visual Studio 9.0\VC\redist\Debug_NonRedist\x86

아래에 있는 dll 들이 필요하다. 하지만 위 dll 들을 빌드된 파일과함께 같은 폴더에 넣어도

exe 파일을 실행시키면

"응용 프로그램 구성이 올바르지 않기 때문에 이 응용 프로그램을 시작하지 못했습니다"

메시지박스가 뜬다.

dependency walker 로 보면 dll 들이 모두 정상적으로 로드되는 것처럼 보이는데

이것은 vs2008 sp1 에서 사용하는 dll 버전이 맞지 않아서이다.

이럴 경우 stdafx.h 파일의 제일 위에

#define _BIND_TO_CURRENT_VCLIBS_VERSION 1

정의를 넣고 다시 빌드하면 타겟 머신에서 실행된다.

< 출처 - http://blog.kalmbach-software.de/2009/05/27/deployment-of-vc2008-apps-without-installing-anything/ >


댓글 없음:

댓글 쓰기