2011-12-21 316 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的 防爆 - 相同功能的擴展版本,例如一些額外的參數