오늘 비주얼 스튜디오에서 흥미로운 사실을 발견.
비주얼 스튜디오에서 DLL프로젝트를 만들때 "기호 내보내기"옵션을 줘서 생성하면
다음과 같은 코드 템플릿을 만들어준다.
// dlltest.cpp : DLL 응용 프로그램에 대한 진입점을 정의합니다.
//
#include "stdafx.h"
#include "dlltest.h"
BOOL APIENTRY DllMain( HANDLE hModule,
DWORD ul_reason_for_call,
LPVOID lpReserved
)
{
switch (ul_reason_for_call)
{
case DLL_PROCESS_ATTACH:
case DLL_THREAD_ATTACH:
case DLL_THREAD_DETACH:
case DLL_PROCESS_DETACH:
break;
}
return TRUE;
}
// 내보낸 변수의 예제입니다.
DLLTEST_API int ndlltest=0;
// 내보낸 함수의 예제입니다.
DLLTEST_API int fndlltest(void)
{
return 42;
}
// 내보낸 클래스의 생성자입니다.
// 클래스 정의를 보려면 dlltest.h를 참조하십시오.
Cdlltest::Cdlltest()
{
return;
}
자.. 보이는가! return 42;의 압박이!
크핫핫. 결국 MS의 개발자들도 인생, 우주와 모든 것에 대한 궁극적인 질문의 해답을 알고 있었다는 말!
(그런데 왜 제품은 그모냥으로 만드냐고..)