1、所有C/C++运行时的启动函数作用基本相同:检索指向新进程的命令行指针、检索指向新进程的环境变量指针、全局变量初始化、内存堆栈初始化等。当所有的初始化操作完成后,启动函数就调用应用程序的入口点函数。
拿VC编译的程序来讲,有GetVersion(确定Windows系统版本)、GetCommondLineA(指向进程的完整命令行的指针)、GetStratupInfoA(获取进程的启动信息)、GetMoudleHandleA(返回进程地址空间执行文件基地址),然后调用入口点函数。当然,不同版本编译信息不同。
当入口点返回时,启动函数便调用C运行库的exit函数,将返回值(nMainRetVal)传递给它,进行一些必要的处理,最后调用系统函数ExitProcess退出。
2、函数的部分:返回值、函数名、参数、功能。
返回值:return一般放在EAX寄存器,如果超出大小,则放在EDX:EAX中。当然,也有通过引用传递和全局变量来返回值的。
名称修饰约定:
参数传递:通过寄存器、全局变量、堆栈。其中传递参数需要遵循一定的调用约定&#