Windows에서 응용 프로그램을 개발하고 있지만 다른 플랫폼도 지원하고 싶습니다. (작성한 코드의 대부분은 플랫폼에 독립적입니다.)WinMain 매개 변수를 다른 함수에 전달합니다.
이#ifdef _WIN32
int WINAPI WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR cmdLine,
int cmdShow)
#else
int main(int argc, char* argv[])
#endif
{
/* If the application is launched under Windows */
#ifdef _WIN32
win_init wi;
return wi.init(hInstance, hPrevInstance, cmdLine, cmdShow);
#endif
/* If the application is launched under OS X */
#ifdef __APPLE__
osx_init oi;
return oi.init();
#endif
}
그래서 아이디어는 응용 프로그램이 있다는 것입니다 경우 : 나는 간단한 일을 계속하고 싶습니다 어쨌든, 개발 술에 대한 생각 때문에 내 main.cpp
약간은 다음과 같습니다 (아마도 나는이 접근 순진했다) Windows에서 실행되면 WinMain
이 호출 된 다음 나머지 작업을 수행하기 위해 제공되는 WinMain 인수로 wi.init를 호출합니다.
은 내가 똑똑하고 생각했지만, 내가 컴파일 할 때 오류 얻을 :이 오류를 연구 한
MSVCRTD.lib(crtexe.obj) : error LNK2019: unresolved external symbol _main referenced in function ___tmainCRTStartup
을 사람들이 주요 방법을 잊어 버렸거나 시도 중 때 발생하는 것으로 보인다 .exe로 DLL을 컴파일
내 질문에; 왜 이런 일이 일어나고 있는지 궁금합니다.이 접근법 대신 제가 무엇을 권하고 싶습니다.
앱이 아직 기본 Windows 앱이 아닌 콘솔 모드 앱으로 연결 중입니다. 이것은 의도적입니까? 그렇다면 main()을 표준 요구 사항으로 사용하십시오. 그렇지 않은 경우 Linker + System + SubSystem 설정을 사용하십시오. Linker + Advanced + Entry Point에 유의하십시오. –