C ++没有main()函数?

时间:2011-07-12 10:15:21

标签: c++ visual-c++ visual-studio-6

我是一名研究生程序员,在谈到C ++时,我希望每次都有main()函数。

但是我得到了一个用C ++编写的Visual Studio 6.0项目,它没有main()函数。我真的无法弄清楚这个程序是如何执行的或它开始的地方。

我见过可以用来更改main()函数名称的宏示例,但是这段代码没有显示出这种做法的迹象。

有人可以建议我应该寻找什么吗?

5 个答案:

答案 0 :(得分:14)

首先,它可以是库,DLL或静态库,而不是main()。第二,它可以是一个具有另一个入口点的Windows应用程序,例如WinMain()。同样在Visual Studio中有一个_tmain()函数或其他函数,它是main()

的一种包装器。

答案 1 :(得分:14)

也许主函数在库中,程序以静态对象上的虚函数调用开始。这就是MFC应用程序中发生的情况。

该程序从CWinApp派生一个类,并将其作为静态变量实例化一次。 MFC然后知道一个指针(由CWinApp的构造函数设置,并在该指针上调用虚函数InitInstance()。

请参阅,这是程序中的软件接管的地方......

答案 2 :(得分:3)

虽然标准规定程序必须具有main函数,但如果链接的库具有在其中定义的main函数,则不必由应用程序开发人员编写。此外,一些链接器允许您将入口点重新定义为main之外的其他内容。

是否有WinMain?

答案 3 :(得分:2)

如果您正在编写Win控制台应用程序 - 您需要一个main() 但如果你正在处理DLL,你期待一个DllMain() 对于窗口应用程序,您应该期望WinMain()

答案 4 :(得分:1)

仅供参考,因为这不是一般情况,所以在C中(我想在C ++中)可能有没有主要功能的程序。 (几年前我曾与之合作)。当然,这是一个嵌入式编程环境,而不是Windows。

窍门是,汇编程序中的启动代码执行完后调用了完全不同的函数。

因此,即使我们的老师教给我们有关C / C ++的知识总不是绝对的事实