1. Window API 函数
Windows API 提供的函数,有ANSI和UNICODE 版本的,需要注意的是,你调用一个函数时,这个函数名可能是定义好的一个macro罢了
#define MessageBox MessageBoxA
#define MessageBox MessageBoxW
#undef MessageBox
取消macro
注意你使用的是什么编码
2.cl 调用Windows 函数的过程
一般,你在.cpp文件中使用到的函数,都是CRT去间接调用的,为什么间接?
因为,不是操作系统直接调用,而是通过CRT -> 操作系统 再进行调用的。具体原因,是为了实现C/C++跨平台特性,比如,让更多的操作系统支持同名的一个printf函数。
同理,cl 编译器,在编译代码的过程中,第一件事情,就是设定好windows 平台下的CRT ,这个CRT 内包含了很多Windows提供的C语言接口;当你调用的windows函数在CRT中没有是,需要自己添加.lib文件到编译器中,方法是
cl foo.exe user32.lib
这样,user32.lib中封装好的windows平台调用,就植入到你的foo.exe中了,然后就可以使用API函数
3.windows 默认call stack 大小1MB
call stac