我使用的是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