试过将main() 和 WinMain()函数放在.h文件中码?
程序入口函数(main或WinMain)放置在.h文件中,你试过吗?
先看一个简单程序:
//Main.h
#include <iostream>
using namespace std;
int GameMain(void);
int main(void)
{
cout << "Hello-main" << endl;
GameMain();
return 0;
}
---------------------------------------------------
//Main.cpp
#include "Main.h"
#include <cstdio>
int GameMain(void)
{
printf("Hello-GameMain");
return 0;
}
编译运行后:
Hello-main
Hello-GameMain
在学习MFC时,开始也没发现有入口函数(MFC的入口函数为_tWinMain)的影子,后来明白是在全局对象theApp被CWinApp构造函数构造的过程中调用了入口函数_tWinMain()。从中发现入口函数是可以通过构造函数隐式调用的。
学了两年的编程语言,我真不知道可以将程序入口函数放置在.h文件中。今天在看A*算法(静态地图最短路径搜索算法原文链接)时,看作者提供的实现代码时未发现WinMain函数的影子,感觉好奇怪,但是整个工程竟然是可正常运行的。最后发现猫腻在LunchWindow.h这个头文件。于是有了此文。
我都一直墨守成规的将main函数放在.cpp文件中,虽然知道.h文件中可以声明变量、函数原型、函数实现、宏定义等等,但是从未怀疑过main函数的实现也能放在.h文件中,并且也能使工程正常的运行。
以前以为自己很懂.h文件的功能,但是今天看来,我错了,错得很远!在此作文告诫自己。
补充:软件开发 , C++ ,