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/ >
댓글 없음:
댓글 쓰기