2011-08-18 3 views
0

어떤 종류의 라이브러리에서 엔트리 포인트 (main 또는 winmain)를 생성 할 수 있는지 궁금합니다. 나는 창 관리자 코드를 작성하려고하는데, winmain (extern render() 또는 extern refresh()와 같은)에 의해 호출 된 몇 가지 외부 함수를 정의하는 응용 프로그램 특정 파일이있는 라이브러리에서 main 함수를 갖고 싶습니다.외부 엔트리 포인트 C++ (lib 또는 dll)

나는 독자적으로이 작업을 시도했지만 정의되지 않은 진입 점 오류가 발생했습니다.

+0

가능한 복제본 [MFC의 wWinMain이 실행 파일로 끝나는 방법은 무엇입니까?] (http://stackoverflow.com/questions/6871836/how-does-mfcs-wwinmain-end-up-in-the-executable) –

답변

0

프로젝트에서 Module-Definition file을 사용하여 DLL에서 내보내기를 지정할 수 있습니다.

0

나 자신을 위해 이것을 알아 내려고 노력하면서 마지막 며칠을 보내고 행운이있어.

노트 난 단지 정적 라이브러리 (lib 디렉토리) lib 디렉토리 파일과

것은

이 라이브러리의 함수를 호출하는 경우 그들은 단지 사용하고 프로젝트에 연결 얻을 것입니다 이것을 시도했다. 이제 최소한의 프로젝트에 대한 문제점은 주 기능 만 가질 수 있다는 것입니다. 그러나 이것은 프로젝트에 의해 호출되지 않으므로 프로젝트와 어떻게 연결되어 있습니까?

내 솔루션은 우아하지 않을 수도 있지만 나를 위해 작동합니다. lib.h를 포함하고 lib.cpp에서 하나의 더미 함수를 호출하는 LibConnection.h를 만듭니다. 나쁜 점은, 내 의견으로는 lib.h와 Connectionlib.h를 프로젝트 파일에 포함시켜야한다는 것이다. 이 같은

:

//Lib.h 
void ConnectionFunction(); 

//Lib.cpp 
int main(int argc, char* argv[]) 
{ 
    //do some stuff 
} 

//This function doesn't do anything but it is important 
//that you define it in your lib.h and declare it in your lib.cpp 
void ConnectionFunction() 
{ 
} 

지금 당신은 기본 라이브러리가이 같은 연결 파일 을 만들 수 있습니다

//LibConnection.h 
#include "Lib.h" 
//now we call the connectionfunction 
//remember non of this get really called but it makes possible connecting with your 
//almost empty library 
void Dummy() 
{ 
    ConnectionFunction(); 
} 

을 다음 빈 프로젝트 :

//testapp.cpp 
#include "LibConnection.h" 
//remember to include the lib.h and the libconnection.h into your project files 

void Foo() 
{ 
    //this function doesn't get called but your project is running! 
} 

희망이 있습니다.

관련 문제