Visual Studio のプロジェクト設定に SUBSYSTEM の設定項目がありますね。
こいつを設定することで、エントリポイントが変わるわけですよ。
これをうまく使えば、 WinMain, main の切り替えが楽にできるのです。
具体的には
int main(int argc, char** argv)
を常に使い、プロジェクトは Win32プロジェクト を選択。
/SUBSYSTEM:CONSOLE が設定されているときは、通常通り呼べば良い。
/SUBSYSTEM:WINDOWS が設定されているときは、WinMain() から定義した関数である main() を呼べば良いわけです。
WinMain の方をライブラリ側で用意し、ライブラリ使用者は常に main を使うなどすると便利かな。
-
int main(int argc, char** argv)
-
{
-
return 0;
-
}
-
-
int APIENTRY WinMain(HINSTANCE instance, HINSTANCE prevInstance, LPSTR cmdParamarg, INT cmdShow)
-
{
-
return main(__argc, __argv);
-
}
