項目的字符集被設置爲Unicode字符集時,使用Window API經常性會遇到獲取Unicode字符串的長度,如下所示:
下面方法是獲取系統目錄,並將系統目錄寫入到文件中保存,其中WriteFile方法第三個參數要傳入TCHAR類型的字符串長度。
DWORD WriteSystemInfo()
{
TCHAR szSystemDir[MAX_PATH];
//獲取系統目錄
GetSystemDirectory(szSystemDir,MAX_PATH);
//文件句柄
HANDLE hFile;
DWORD dwWritten;
hFile = ::CreateFile(_T("systemroot.txt"),
GENERIC_WRITE,
0,
NULL,
CREATE_ALWAYS,
FILE_ATTRIBUTE_NORMAL,
NULL);
//判斷文件是否成功
if(hFile != INVALID_HANDLE_VALUE)
{
//將系統目錄寫入文件
//lstrlen獲取TCHAR字符串的長度
if(!::WriteFile(hFile,szSystemDir,lstrlen(szSystemDir)*sizeof(TCHAR),
&dwWritten,NULL))
{
return GetLastError();
}
}
//關閉文件
::CloseHandle(hFile);
return 0;
}