什么是winapi函数声明约定?

时间:2011-12-21 14:35:12

标签: winapi

这六个功能有什么区别?

LoadLibrary
LoadLibraryA
LoadLibraryEx
LoadLibraryExA
LoadLibraryExW 
LoadLibraryW

winapi中每个后缀的含义是什么?所有这些函数之间有什么区别?

3 个答案:

答案 0 :(得分:4)

A表示ANSI; W表示宽(Unicode)。
A版本不支持Unicode字符串;它们是Win9X的遗物。

无后缀版本将在编译时扩展为AW版本,具体取决于是否定义了符号UNICODE

Ex版本是具有附加功能的API方法的较新版本;有关详细信息,请参阅文档。

答案 1 :(得分:4)

LoadLibraryLoadLibraryEx是根据您的项目是否使用unicode支持进行编译而定义的宏。如果是,则他们指向LoadLibraryWLoadLibraryExW,否则他们会指向LoadLibraryALoadLibraryExA

通常,您需要使用最终没有A或W的版本编写代码,让编译器定义为您带来所有魔力。

Ex后缀是表示“EXtended”函数的标准方式:一种类似于常规版本,但提供其他功能。通常,它们是在较新版本的Windows中添加的,并且可能并不总是可用(尽管它们中的大多数现在已经很久了,因此它们已经在Windows 3.1或95中添加回来了。)

如前所述,功能之间的确切差异应始终在MSDN上进行检查。

答案 2 :(得分:1)

A - ansi W - unicode Ex - 相同功能的扩展版本,例如一些附加参数