- 18
- 0
- 约1.57万字
- 约 19页
- 2019-02-11 发布于天津
- 举报
MSVC CRT入口函数.DOC
MSVC CRT入口函数
相信读者对glibc的入口函数已经有了一些了解。但可惜的是glibc的入口函数书写得不是非常直观。事实上,我们也没从glibc的入口函数了解到多少内容。为了从另一面看世界,我们再来看看Windows下的运行库的实现细节。下面是Microsoft Visual Studio 2003里crt0.c(位于VC安装目录的crt\src)的一部分。这里也删除了一些条件编译的代码,留下了比较重要的部分。MSVC的CRT默认的入口函数名为mainCRTStartup:
int mainCRTStartup(void){...
这是入口函数的头部。下面的代码出现于该函数的开头,显得杂乱无章。不过其中关键的内容是给一系列变量赋值:
??? posvi = (OSVERSIONINFOA *)_alloca(sizeof(OSVERSIONINFOA));posvi-dwOSVersionInfoSize = sizeof(OSVERSIONINFOA);GetVersionExA(posvi);_osplatform = posvi-dwPlatformId;_winmajor = posvi-dwMajorVersion;_winminor = posvi-dwMinorVersion;_osver = (posvi-dwBuildNumber) 0
原创力文档

文档评论(0)