2010-04-02 2 views
1

Windows XP가 있고 .Net 프레임 워크가없고 C++ 라이브러리가없는 컴퓨터에서 VC++ .net 2008로 작성된 exe 파일을 실행하고 싶습니다. 하지만 난 파일을 실행할 때 나는이 오류가 :exe ​​파일에 DLL을 삽입

This application has failed to start because the application configuration is incorrect.... 

나는 방법이 문제의 자유가 될 함께 모든 의존성을 넣고 싶다. 내가 뭘해야하는지 아는 사람이 있습니까?

+0

C++/CLI를 의미합니까? – SLaks

답변

2

순수 C++ 응용 프로그램 (Win32 만, .NET 없음)을 작성하는 경우 프로젝트 속성에서 변경할 수있는 C++ 런타임을 정적으로 연결하려고합니다. 지침은 this answer을 참조하십시오. (VC2005의 경우이지만 VC2008의 단계는 동일합니다.)

1

this one과 같은 .Net 링커를 찾고있는 것 같습니다.

+0

VS2008 프로젝트에서 내 시스템 DLL이 아닌 내 DLL에서 사용할 수있는 설정 방법은 무엇입니까? – JGC

+0

타사 소프트웨어가없는 .Net 프로젝트에서는이 작업을 수행 할 수 없습니다. – SLaks

+0

난 .net 사용에 심각한 게 아니야. 난 그냥 창 기능을 사용하고 싶다. 내 문제를 해결할 수있는 다른 환경을 알고 계십니까? – JGC

0

당신은 두 가지 선택을 할 수 있습니다 : 순수한 C++ (또는 독립 실행 형 실행 파일을 생성 할 수있는/만들 수있는 다른 언어)로 프로그램을 작성하거나 의존성 워커를 사용하여 필요한 DLL을 찾아 패키지로 만듭니다. 설치 프로그램.

당신이 제안하는 옵션은 (일부 DLLS에 의존하고 DLL을 실행 파일에 "삽입"하려고하는) 기존의 실행 파일을 취하는 것은 거의 불가능합니다. 이론 상으로는 (예를 들어) 설치 프로그램을 실행 파일로 생성하고 사용자가 프로그램을 실행하려고 할 때마다 설치 프로그램을 다시 실행하게 할 수 있습니다. 이것은 대개 사용자가 아마 좋아하지 않을만큼의 오버 헤드를 추가합니다.

마찬가지로 DLL을 실행 파일에 바이너리 리소스로 넣고 FindResource, LoadResource 등을 사용하여 내용을 임시 파일에 기록 할 수 있습니다.하지만 일부 준 고급 프로그래밍이 필요하며 여전히 상당한 양의 오버 헤드를 부과합니다.

+0

거기에 내 실행 파일 근처에 내 DLL을 넣고 그들을 사용할 수있는 방법은 무엇입니까? – JGC

+0

@JGC : 예 - 실행 파일이있는 동일한 디렉토리에 복사하면 시스템에서 해당 파일을 찾을 수 있습니다. –

관련 문제