我使用的是visual studio 2015,我想编写C++静态库,可以在Unicode项目和多字节项目中使用,我该如何做对吗?我如何在静态库(.lib)中支持Unicode和多字节字符集?
例如,我有这样的代码:
namespace Reg
{
LONG WINAPI CreateKey(
_In_ HKEY hKey,
_In_ LPCTSTR lpSubKey,
_In_ REGSAM samDesired,
_Out_ PHKEY phkResult
)
{
return RegCreateKeyEx(hKey,
lpSubKey,
0, NULL,
REG_OPTION_NON_VOLATILE,
samDesired,
NULL,
phkResult,
NULL);
}
}
只使用一个wchar_t接口,并不关心所有的TCHAR业务。当它被发明时这是一个坏主意,现在它是一个坏主意。在任何情况下,都不使用“宽”版本的Windows API。 – rubenvb
你必须有两个函数,因为这是C++,你可以重载,所以有两个'CreateKey'函数,一个需要'LPCWSTR'和一个需要'LPCSTR'。 –
@RaymondChen我可以只有一个声明需要'LPCTSTR'和两个定义,一个需要'LPCWSTR'和一个需要'LPCSTR'? – codeDom