请教pb不同版本之间,申明win32 api函数的区别
举例:
在PB6.5中 遍历文件夹的函数申明方式为:
FUNCTION ulong FindFirstFile(string lpFileName,ref str_WIN32_FIND_DATA lpFindFileData) LIBRARY "kernel32.dll" ALIAS FOR "FindFirstFileA"
FUNCTION ulong FindNextFile(ulong hFindFile,ref str_WIN32_FIND_DATA lpFindFileData) LIBRARY "kernel32.dll"ALIAS FOR "FindNextFileA" //
即 FOR "*****A"
而在pb10以后 则需要这样申明:
FUNCTION ulong FindFirstFile(string lpFileName,ref str_WIN32_FIND_DATA lpFindFileData) LIBRARY "kernel32.dll" ALIAS FOR "FindFirstFileW" //
FUNCTION ulong FindNextFile(ulong hFindFile,ref str_WIN32_FIND_DATA lpFindFileData) LIBRARY "kernel32.dll" ALIAS FOR "FindNextFileW" //
//播放wav文件
FUNCTION ulong waveOutGetNumDevs() LIBRARY "Winmm.dll"
FUNCTION ulong sndPlaySound(ref string lpszSoundName,ulong uFlags) LIBRARY "Winmm.dll" ALIAS FOR "sndPlaySoundA;Ansi"
即 FOR "****W" 或 FOR "*****A;Ansi"
而有的函数声明则完全不需要 ALIAS FOR "*******"
我想请教pb不同版本的win32 api申明方式有什么主要区别和规则, 在什么情况也用FOR "****W",什么情况下用FOR "*****A"、FOR "*****A;Ansi",什么情况下不用 ALIAS FOR "*******"
------解决方案--------------------
PB10以后都用UNICODE宽字符,而以前的版本都是ANSI,所以在字符操作时,就会有问题