Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/154.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 从其他函数调用WinMain_C++_Winapi - Fatal编程技术网

C++ 从其他函数调用WinMain

C++ 从其他函数调用WinMain,c++,winapi,C++,Winapi,因此,我有一个.cpp文件,它有一些函数:drawLine()、drawSquare()和main()。在main()中,我想调用(来自其他文件的)函数,该函数使用WinApi创建一个窗口,然后调用drawLine()和drawSquare()在该窗口中绘制一些图形。如果这个WinMain()看起来像这样,我如何调用它(仅声明): 还有一件事。此创建窗口必须在WinMain中,还是有办法将指令放入常规函数中?WinMain是入口点,必须(与c中的main类似)按原样命名。抱歉,无法重命名此函数。

因此,我有一个.cpp文件,它有一些函数:drawLine()、drawSquare()和main()。在main()中,我想调用(来自其他文件的)函数,该函数使用WinApi创建一个窗口,然后调用drawLine()和drawSquare()在该窗口中绘制一些图形。如果这个WinMain()看起来像这样,我如何调用它(仅声明):


还有一件事。此创建窗口必须在WinMain中,还是有办法将指令放入常规函数中?

WinMain是入口点,必须(与c中的main类似)按原样命名。抱歉,无法重命名此函数。从另一个文件调用此函数可能会起作用,但这通常不会也不应该这样做,因为只有windows操作系统才是所有WinMain函数的合法调用方

main
是控制台应用程序的入口点

WinMain
用于GUI应用程序

您的项目应该只有其中一个,句号


你可以把窗口创建代码放在任何地方;它不需要位于
WinMain

Q中。如果这个WinMain()看起来像那样(只有声明),我如何调用它呢?

  • 参数对于GUI应用程序的工作不是必需的。试着这样做:
WinMain(0,0,0,0)

Q.此创建窗口必须在WinMain中,还是有办法将指令放入常规函数中?

  • WinMain只是一个入口点。你可以把它放在任何你想放的地方
--


您的设置似乎有点混乱。据我所知,你并不真的需要WinMain。。。只需调用Windows API函数即可创建窗口。

您可以重命名此函数(=更改入口点名称)。告诉链接器应该使用/entry开关使用另一个入口点。哇,从没听说过。谢谢澄清。你们都错了。名称
WinMain
实际上只是一个约定,它也不是入口点。默认情况下,入口点是
WinMainCRTStartup
wwinmincartstartup
。这是CRT执行所有启动代码的地方。然而,CRT要求“入口点”实际上被称为
WinMain
wWinMain
。如果你不使用CRT,你可以用任何你喜欢的名字。
int WINAPI WinMain (HINSTANCE hThisInstance,
                HINSTANCE hPrevInstance,
                LPSTR lpszArgument,
                int nFunsterStil)