獲取TCHAR類型字符串長度

 項目的字符集被設置爲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;
}
發佈了34 篇原創文章 · 獲贊 0 · 訪問量 2599
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章