2009-05-07 3 views
0

VS 생성 C++ Win32 DLL 프로젝트가 있습니다. 그것은 다음과 같은 파일이 있습니다VS 2008 Win32 DLL을 하나의 파일로 스트리핑

에 stdafx.h targetver.h myProject.h dllmain.cpp을 myProject.cpp stdafx.cpp

내가 targetver.h을 제거하고에 dllmain.cpp을 병합 할 수 있습니다 myProject.cpp. 가장 간단한 파일 구조, 더 나아가 하나의 파일을 얻으려면 더 많은 것을 할 수 있습니다. 이 코드 파일을 동적으로 내보내 Win32 DLL로 빌드해야합니다.

답변

1

최소한의 파일 구조를 원할 경우 파일을 직접 만들면됩니다. 빈 프로젝트를 시작하거나 모든 파일을 삭제하십시오. 젠장, 폴더를 만들고 main.cpp과 compile it from the command line with cl을 쓴다.

몇 가지 IDE가 실제로 파일을 최소화하려고 시도하지만 프로젝트를 만들 때 약간 줄일 수 있습니다. stdafx. [h, cpp]는 미리 컴파일 된 헤더를위한 것으로, 프로젝트를 만듭니다.

그렇긴하지만, 컴파일 된 언어 프로젝트에서 소스 코드의 양을 최소화하는 데 실제로 가치가있는 것은 아닙니다. 출력 파일/dll의 수에 의미있는 영향을 미치지는 않을 것입니다. 더 많은 파일을 사용하면 코드의 명확성이 향상됩니다.

0

IIRC, myProject.hmyProject.cpp에는 내 보낸 클래스의 예가 들어 있습니다. 당신은 쉽게 삭제할 수 있습니다.

stdafx.cppstdafx.h은 표준 사전 컴파일 된 헤더 파일에 사용됩니다. 미리 컴파일 된 헤더가 필요한 설정을 해제하면 해당 파일도 필요하지 않습니다.

1

Andy가 말했던 것 외에도 myProject 헤더와 구현 파일을 dllmain.cpp과 병합 할 수 있습니다. 그러나이 파일들을 보관하지 않고 런타임에 vsproj 파일을 생성하는 것이 왜 좋을까요?

1

빈 프로젝트를 만들 수도 있습니다.

0

생성 한 파일을 # 기존의 다중 파일 프로젝트에 # 포함시킬 수 있습니다. 그렇게하면 복잡한 프로젝트의 쉘을 가질 수 있고 간단한 기능처럼 작은 것을 방출 할 수 있습니다. 예를 들어

:

#include <system_stuff> 

void main() 
{ 
    Go(); 
} 

#include "generated_file_that_has_method_go.cpp" 

void other_code() 
{ 
}