已经2天没有更新了。这两天有点忙。下面继续:)
当我们用C++来编写操作系统的时候,我们不能随便制定一个程序的入口点。 在C++中,静态对象必须在main函数之前被构造。换句话说,我们在C++的入口函数中必须要做的一件事是调用静态对象的构造函数。但是我们怎么去调用那些构造函数呢?
在Visual C++里,编译器会做一些处理,使得我们可以拿到静态对象初始化的入口点。下面的代码可以用来调用所有静态对象的构造函数。 另外,由于我暂时没有打算在程序结束后调用任何静态对象的析构函数,所以我没有实现析构的调用。
在上面的代码中, RomeCRTStartup就是我们C++程序的入口点了。
接下来,我们在CRT中还必须支持C++异常,我将在下一节讲述VC++异常的支持。