2011-12-21 329 views
1

这六个函数之间有什么不同?什么是winapi函数声明约定?

LoadLibrary 
LoadLibraryA 
LoadLibraryEx 
LoadLibraryExA 
LoadLibraryExW 
LoadLibraryW 

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

回答

4

LoadLibraryLoadLibraryEx是其取决于是否你的项目支持Unicode编译定义的宏。如果是,他们指向LoadLibraryWLoadLibraryExW,否则他们指向LoadLibraryALoadLibraryExA

通常情况下,您需要使用没有A或W的版本编写代码,并让编译器定义为您提供所有的魔力。

Ex后缀是表示“扩展”功能的标准方式:与常规版本类似,但提供了附加功能。通常,它们被添加到更新版本的Windows中,并且可能并不总是可用(尽管它们中的大多数都已经很旧了,现在它们已被添加到Windows 3.1或95中)。

如前所述,函数之间的确切区别应始终在MSDN上进行检查。

4

A表示ANSI; W意味着宽(Unicode)。
A版本不支持Unicode字符串;他们是来自Win9X的遗物。

根据是否定义符号UNICODE,无后缀版本将在编译时扩展到AW版本。

Ex版本是具有附加功能的API方法的更新版本;请参阅文档以获取更多细节。

1

A - ANSI W - unicode的 防爆 - 相同功能的扩展版本,例如一些额外的参数