Howdy,
I ran the winapi_check tool today, seems the wiki hadn't been updated in a while 2 years. For those curious, here are the results (I removed the nonbugs as mentioned on the wiki).
dlls/imm32/imm.c: imm32: ImmConfigureIMEW: illegal call to strdupWtoA (Unicode -> ASCII) dlls/imm32/imm.c: imm32: ImmEnumRegisterWordW: illegal call to strdupWtoA (Unicode -> ASCII) dlls/imm32/imm.c: imm32: ImmGetConversionListW: illegal call to strdupWtoA (Unicode -> ASCII) dlls/imm32/imm.c: imm32: ImmRegisterWordW: illegal call to strdupWtoA (Unicode -> ASCII) dlls/imm32/imm.c: imm32: ImmSetCompositionStringW: illegal call to ImmSetCompositionStringA (Unicode -> ASCII) dlls/imm32/imm.c: imm32: ImmUnregisterWordW: illegal call to strdupWtoA (Unicode -> ASCII) dlls/kernel32/lzexpand.c: kernel32: LZOpenFileW: illegal call to LZOpenFileA (Unicode -> ASCII) dlls/rpcrt4/rpc_binding.c: rpcrt4: RpcBindingToStringBindingW: illegal call to RpcBindingToStringBindingA (Unicode -> ASCII) dlls/rpcrt4/rpc_binding.c: rpcrt4: RpcBindingToStringBindingW: illegal call to RpcStringFreeA (Unicode -> ASCII) dlls/rpcrt4/rpc_server.c: rpcrt4: RpcServerUseProtseqEpExW: illegal call to RPCRT4_strdupWtoA (Unicode -> ASCII) dlls/shell32/shlfileop.c: shell32: SheGetDirW: illegal call to SetCurrentDirectoryA (Unicode -> ASCII) dlls/user32/winhelp.c: user32: WinHelpW: illegal call to WinHelpA (Unicode -> ASCII) dlls/version/install.c: version: VerInstallFileW: illegal call to VerInstallFileA (Unicode -> ASCII) dlls/winspool.drv/info.c: winspool.drv: AddPrinterW: illegal call to DEVMODEdupWtoA (Unicode -> ASCII) dlls/winspool.drv/info.c: winspool.drv: DeviceCapabilitiesW: illegal call to DEVMODEdupWtoA (Unicode -> ASCII) dlls/winspool.drv/info.c: winspool.drv: DeviceCapabilitiesW: illegal call to DeviceCapabilitiesA (Unicode -> ASCII) dlls/winspool.drv/info.c: winspool.drv: DeviceCapabilitiesW: illegal call to strdupWtoA (Unicode -> ASCII) dlls/winspool.drv/info.c: winspool.drv: DocumentPropertiesW: illegal call to DEVMODEdupWtoA (Unicode -> ASCII) dlls/winspool.drv/info.c: winspool.drv: DocumentPropertiesW: illegal call to DocumentPropertiesA (Unicode -> ASCII) dlls/winspool.drv/info.c: winspool.drv: DocumentPropertiesW: illegal call to strdupWtoA (Unicode -> ASCII) dlls/ws2_32/socket.c: ws2_32: WSAStringToAddressW: illegal call to WSAStringToAddressA (Unicode -> ASCII)
There were a few other warnings as well: dlls/msvcrt20/msvcrt20.c:25: <>: void CDECL __getmainargs(int *,char ***,char ***,int,int *): duplicate declaration (first declaration at dlls/crtdll/crtdll_main.c:36) dlls/rsaenh/implglue.c:41: <>: VOID WINAPI MD5Init(MD5_CTX *): duplicate declaration (first declaration at dlls/msi/msi.c:2919) dlls/rsaenh/implglue.c:42: <>: VOID WINAPI MD5Update(MD5_CTX *,unsigned char *,unsigned int): duplicate declaration (first declaration at dlls/msi/msi.c:2920) dlls/rsaenh/implglue.c:43: <>: VOID WINAPI MD5Final(MD5_CTX *): duplicate declaration (first declaration at dlls/msi/msi.c:2921) dlls/secur32/util.c:104: <>: VOID WINAPI MD4Init(MD4_CTX *): duplicate declaration (first declaration at dlls/rsaenh/implglue.c:37) dlls/secur32/util.c:105: <>: VOID WINAPI MD4Update(MD4_CTX *,unsigned char *,unsigned int): duplicate declaration (first declaration at dlls/rsaenh/implglue.c:38) dlls/secur32/util.c:106: <>: VOID WINAPI MD4Final(MD4_CTX *): duplicate declaration (first declaration at dlls/rsaenh/implglue.c:39) dlls/secur32/util.c:107: <>: VOID WINAPI MD5Init(MD5_CTX *): duplicate declaration (first declaration at dlls/msi/msi.c:2919) dlls/secur32/util.c:108: <>: VOID WINAPI MD5Update(MD5_CTX *,unsigned char *,unsigned int): duplicate declaration (first declaration at dlls/msi/msi.c:2920) dlls/secur32/util.c:109: <>: VOID WINAPI MD5Final(MD5_CTX *): duplicate declaration (first declaration at dlls/msi/msi.c:2921) dlls/winex11.drv/graphics.c:1512: <>: void WINAPI A_SHAInit(sha_ctx *): duplicate declaration (first declaration at dlls/rsaenh/implglue.c:45) dlls/winex11.drv/graphics.c:1513: <>: void WINAPI A_SHAUpdate(sha_ctx *,unsigned char *,unsigned int): duplicate declaration (first declaration at dlls/rsaenh/implglue.c:46) dlls/winex11.drv/graphics.c:1514: <>: void WINAPI A_SHAFinal(sha_ctx *,unsigned char *): duplicate declaration (first declaration at dlls/rsaenh/implglue.c:47)
win16.api:822: type (unsigned long *) is not Win64 compatible win32.api:2954: type (long) is not Win64 compatible win32.api:2959: type (unsigned long) is not Win64 compatible win32.api:3008: type (long *) is not Win64 compatible win32.api:3028: type (unsigned long *) is not Win64 compatible win32.api:3073: type (unsigned long) is not Win64 compatible win32.api:6049: type (unsigned long) is not Win64 compatible win32.api:6094: type (unsigned long *) is not Win64 compatible
http://wiki.winehq.org/CrossCallsWtoA
On Monday 20 October 2008 06:39:10 Austin English wrote:
Howdy,
I ran the winapi_check tool today, seems the wiki hadn't been updated in a while 2 years. For those curious, here are the results (I removed the nonbugs as mentioned on the wiki).
dlls/ws2_32/socket.c: ws2_32: WSAStringToAddressW: illegal call to WSAStringToAddressA (Unicode -> ASCII)
Looking at this one.
dlls/rsaenh/implglue.c:41: <>: VOID WINAPI MD5Init(MD5_CTX *): duplicate declaration (first declaration at dlls/msi/msi.c:2919) dlls/rsaenh/implglue.c:42: <>: VOID WINAPI MD5Update(MD5_CTX *,unsigned char *,unsigned int): duplicate declaration (first declaration at dlls/msi/msi.c:2920) dlls/rsaenh/implglue.c:43: <>: VOID WINAPI MD5Final(MD5_CTX *): duplicate declaration (first declaration at dlls/msi/msi.c:2921) dlls/secur32/util.c:104: <>: VOID WINAPI MD4Init(MD4_CTX *): duplicate declaration (first declaration at dlls/rsaenh/implglue.c:37) dlls/secur32/util.c:105: <>: VOID WINAPI MD4Update(MD4_CTX *,unsigned char *,unsigned int): duplicate declaration (first declaration at dlls/rsaenh/implglue.c:38) dlls/secur32/util.c:106: <>: VOID WINAPI MD4Final(MD4_CTX *): duplicate declaration (first declaration at dlls/rsaenh/implglue.c:39) dlls/secur32/util.c:107: <>: VOID WINAPI MD5Init(MD5_CTX *): duplicate declaration (first declaration at dlls/msi/msi.c:2919) dlls/secur32/util.c:108: <>: VOID WINAPI MD5Update(MD5_CTX *,unsigned char *,unsigned int): duplicate declaration (first declaration at dlls/msi/msi.c:2920) dlls/secur32/util.c:109: <>: VOID WINAPI MD5Final(MD5_CTX *): duplicate declaration (first declaration at dlls/msi/msi.c:2921) dlls/winex11.drv/graphics.c:1512: <>: void WINAPI A_SHAInit(sha_ctx *): duplicate declaration (first declaration at dlls/rsaenh/implglue.c:45) dlls/winex11.drv/graphics.c:1513: <>: void WINAPI A_SHAUpdate(sha_ctx *,unsigned char *,unsigned int): duplicate declaration (first declaration at dlls/rsaenh/implglue.c:46) dlls/winex11.drv/graphics.c:1514: <>: void WINAPI A_SHAFinal(sha_ctx *,unsigned char *): duplicate declaration (first declaration at dlls/rsaenh/implglue.c:47)
There's no header file for this, so all the code that uses these functions has to declare this.
Cheers, Kai