从现在开始我应该只在Windows API函数上使用W版本吗?

时间:2014-09-19 17:10:06

标签: c++ winapi

似乎在Windows XP支持结束后不久,Windows SDK人员就弃用了所有A版本的功能。

#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
_WINSOCK_DEPRECATED_BY("WSASocketW()")
WINSOCK_API_LINKAGE
_Must_inspect_result_
SOCKET
WSAAPI
WSASocketA(
    _In_ int af,
    _In_ int type,
    _In_ int protocol,
    _In_opt_ LPWSAPROTOCOL_INFOA lpProtocolInfo,
    _In_ GROUP g,
    _In_ DWORD dwFlags
    );
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion

1 个答案:

答案 0 :(得分:5)

A版本可以正常工作,但由于本机API是unicode,因此这些A函数调用将在内部转换为W调用,因此直接使用W调用会更有效。