`
jelly_bitores
  • 浏览: 44492 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

获取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;
}
分享到:
评论

相关推荐

    TCHAR字符串类 TString

    TCHAR字符串类, 封装了字符串的常用操作,如赋值、比较、格式化等,使用方法和MFC的CString类似,支持Unicode,只有一个.h文件,使用方便,有详细的代码注释

    019-兼容型字符串(TCHAR)及相关函数.flv

    TCHAR字符串常量 _T("字符串str") #ifdef UNICODE typedef wchar_t TCHAR; #else typedef char TCHAR; #endif #ifdef UNICODE #define _tcscpy wcscpy #else #define _tcscpy strcpy #endif 再来看_...

    C++字符串完全指南.doc

    2.2. C语言字符串与类型定义 12 2.3. COM中的字符串 - BSTR 与 VARIANT 14 2.4. 字符串包装类 15 2.4.1. CRT类 _bstr_t 15 2.4.2. _variant_t 15 2.4.3. STL类 16 2.4.4. ATL类 CComBSTR 16 2.4.5. ATL类CComVariant...

    VC中截取字符串(CString)的方法

    在VC++编程中,我们有时会遇到关于截取字符串的问题,对于CString类型字符串的截取VC中有现成的函数可供使用,主要是:CString Mid (int nFirst, int nCount);和BOOL AfxExtractSubString (CString& rString, ...

    VC++中字符串的处理

    CString ,BSTR ,LPCTSTR之间关系和区别CString是一个动态TCHAR数组,BSTR是一种专有格式的字符串(需要用系统提供的函数来操纵,LPCTSTR只是一个常量的TCHAR指针。CString 是一个完全独立的类,动态的TCHAR数组,...

    C++ gbk转unicode、ansi转unicode,字符串查找、切割、转十六进制、转二进制、转义,随机数等数据处理类源码

    1数据转换:ANSI等编码、UTF8编码、UTF16编码(实际为Unicode编码)、TCHAR互转,可以先获取转换出的数据在存储时所需的大小 2字符串查找:正向查找、逆向查找、指定偏移查找 3字符串切割:正向分割、逆向分割、指定...

    自实现String类,接受TCHAR类型

    自实现String类,接受TCHAR类型,功能囊括std:string与CString的大部

    CString,string,char的综合比较

     CString(typedef CStringT<TCHAR, StrTraitMFC<TCHAR>> CString)为Visual C++中最常用的字符串类,继承自CSimpleStringT类,主要应用在MFC和ATL编程中,主要数据类型有char(应用于ANSI),wchar_t(unicode),...

    windows字符串的前世今生

    CString、LPCTSTR、LPTSTR、TCHAR、WCHAR、string、wchar_t、char各种类型的转发与字符集的发展演变,通过思维导图清晰表示他们之间的关系,让初学者摆脱windows编程,常常遇到的的字符集的困惑。

    全局字符串转换局部变量存储防止暴露敏感字符串

    输入要转换的全局字符串,例如:C:\\file\\我的文件.txt,输出: //C:\\file\\我的文件.txt #ifdef _UNICODE TCHAR szC:\\file\\我的文件.txt[] = { 'C', ':', '\\', 'f', 'i', 'l', 'e', '\\', 0x6211, 0x7684, 0x...

    C++字符串操作经验集

    char是C语言标准数据类型,字符型,至于由几个字节组成通常由编译器决定,一般一个字节。 wchar_t是char的Unicode版本。相当于unsigned short。一般两个字节。 CHAR 和WCHAR分别是char和wchar_t的别名,决不会等同。...

    TCHAR转CHAR与WCHAR类型导出函数自动生成器

    当在 windows 下开发程序库时,使用 TCHAR 类型,比直接使用 char 和 wchar_t 具有更好的移植性。但是在编写动态链接库时,不能直接导出 TCHAR 类型的函数,给 TCHAR 类型函数的使用带来了一些限制。使用 texport 在...

    VC++对字符串处理

    精心整理,大家在使用VC++处理字符串的时候肯定遇到unicode 宽字符的问题: 比如:“不能将参数 1 从“const char [5]”转换为“LPCTSTR””之类的问题。 在此文档中告诉你怎么转换。 cstring 转换 char cstring ...

    TCHAR 函数

    TCHAR 函数

    cpp-texport用于自动生成TCHAR类型程序的char和wchart类型的函数调用存根

    texport用于自动生成 TCHAR 类型程序的 char 和 wchar_t 类型的函数调用存根

    字符串类型转换

    string,wstring,CString,TCHAR,char*之间常用转换 ,C/C++语言实现。

    C++自己实现的字符串类

    自己实现的字符串类 class CMStringImp; class CMstring { public: explicit CMstring(void); ~CMstring(void); CMstring(LPCTSTR lpszstr); CMstring(const CMstring& lpszstr); CMstring& operator = (const...

    (UNICODE 与非UNICODE导致的问题)CString,TCHAR和CHAR类型的互转.docx

    (UNICODE 与非UNICODE导致的问题),CString,TCHAR和CHAR类型的互转.docx 没有定义UNICODE,所以它里面的字符串就是简单用" "就行了,创建工程的时候包含了UNICODE定义,就必须对TCHAR和char进行转换。

    QString转换为TCHAR*

    能够有效的将QString转换为TCHAR*,编译运行通过

    C语言中时间戳转换成时间字符串的方法

    在PE格式里有个字段是文件的创建时间戳,我想把转成字符串,这样看的更直观。 TCHAR buffer[50] = {0}; struct tm Tm = {0}; time_t time = (time_t)NtHeader->FileHeader.TimeDateStamp;//时间戳 gmtime_s(&Tm,...

Global site tag (gtag.js) - Google Analytics