没有WinMain的winapi入口点

0 c++ winapi visual-studio-2015

所以通过我在网上发现的winapi程序来源,我发现在任何地方都没有WinMain,我想知道是否有可能让winapi程序像这样工作,为什么你认为原来的程序员做了这样的事情,我们有像这样的对话框程序:

 static INT_PTR CALLBACK mainDialogProc(HWND hwnd, UINT msg, WPARAM wParam,
     LPARAM lParam)
{
 switch(msg)
  {
    case WM_INITDIALOG:
   {
    //..............   
   }
  }
}
Run Code Online (Sandbox Code Playgroud)

并且主入口点就像这样而不是void WINAPI WinMain(void);

void WINAPI entryPoint(void)
{
 //........
}
Run Code Online (Sandbox Code Playgroud)

这真的有可能吗?它违背了我迄今为止研究的所有内容......我确信我错过了一些东西......

IIn*_*ble 6

可执行映像的入口点是通过链接器设置/ ENTRY指定的.如果未明确设置,则默认为mainCRTStartup(或wmainCRTStartup)控制台应用程序,WinMainCRTStartup(或wWinMainCRTStartup)GUI应用程序和_DllMainCRTStartupDLL.使用作为Visual Studio的一部分提供的CRT时,所有上述原始入口点分别调用用户提供的入口点main(或wmain),WinMain(或wWinMain)DllMain.这是在crt0.c中实现的,它作为Visual Studio的CRT源代码的一部分提供.

如果您提供自己的入口点(通过指定/ENTRY链接器选项),它必须具有以下签名(对于32位应用程序):

DWORD CALLBACK RawEntryPoint(void);
Run Code Online (Sandbox Code Playgroud)


额外奖励:WinMain只是Win32进程入口点的常规名称