为何同一函数有几种形式,如MessageBoxA(W)?
MessageBoxA(W)是MessageBoxA,MessageBoxW两种形式缩写,Windows函数是区分字符集的:A表示ANSI,W表示Wide,即Unicode (Wide character-set),前者就是通常使用的单字节方式,而后者是双字节方式,方便处理双字节字符。Win9x基本是使用ANSI字符串来进行内部操作的,但它仍可处理少数Unicode字串符函数,如MessageBoxW、MessageBoxExW等。而Win2000/XP/7/10等NT架构,其系统所有核心函数都是Unicode字串符。
user32.dll 里面没有MessageBox函数,只有MessageBoxA和MessageBoxW,看函数声明
2
兼容性的问题