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)
这真的有可能吗?它违背了我迄今为止研究的所有内容......我确信我错过了一些东西......
可执行映像的入口点是通过链接器设置/ 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)