`
jelly_bitores
  • 浏览: 46762 次
  • 性别: 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;
}
分享到:
评论

相关推荐

    VC++字符串处理函数对照表(宽字符与ANSI字符)

    - **宽字符:** `wcslen()` 获取宽字符字符串长度。 - **通用:** `_tcslen()` 获取通用字符串长度。 - **字符串复制:** - **ANSI:** `strcpy()` 复制字符串。 - **宽字符:** `wcscpy()` 复制宽字符字符串。 - **...

    MFC字符串类.txt

    在处理不同字符编码的字符串时,计算字符串长度的方式也有所不同。 - **`strlen()`**:返回单字节字符串的长度。 - **`wcslen()`**:返回宽字符串的长度,适用于Unicode。 #### 七、示例代码分析 文档中给出了一...

    关于VC++的字符串

    它总是以空字符终止,并且包含一个额外的字节作为字符串长度信息,这有助于提高性能和减少内存消耗。`BSTR`只能在Unicode环境下使用,因此其字符类型为`OLECHAR`,即`wchar_t`。 #### LPCTSTR:常量TCHAR指针 `...

    VC++对字符串处理

    `CString`类提供了丰富的字符串操作方法,比如获取字符串长度的`GetLength()`,截取字符串的`Left()`, `Right()`, `Mid()`,查找字符或子串的`Find()`,删除字符的`Remove()`,替换子串的`Replace()`,以及字符串...

    C++ 分解字符串

    // 获取输入字符串长度 CString strField = ""; // 初始化子字符串为空 for (int i = 0; i ; i++) { if (strList[i] == chSplit) // 如果当前字符等于分隔符 { vecString.push_back(strField); // 将子字符串...

    c++ MFC各种类型互转

    获取TCHAR字符串长度可使用`lstrlen()`函数,如`int len = lstrlen(savePath);`。 接着,我们讨论CHAR类型,它通常用于表示ASCII编码的窄字符。字符串长度可以通过`strlen()`函数获取,如`int len = strlen...

    字符串转换(教程)可以做为参考

    在编程中,字符串转换是常见的操作,特别是在C++中,由于C++标准库中的字符串类型(如`std::string`)与MFC(Microsoft Foundation Classes)库中的`CString`类存在差异,所以需要进行不同类型的字符串转换。...

    WINDOWS下UNICODE操作.txt

    #### 一、获取字符串长度 在 Windows 下进行 Unicode 操作时,首先遇到的问题是如何获取字符串的长度。对于多字节字符(MBCS)和双字节字符集(DBCS),我们可以使用 `mbslen` 函数,而在 ANSI 编码中则使用 `strlen...

    CSTRING类的内幕效率研究

    1. **获取字符串长度**: - `int GetLength() const;`:返回字符串的实际长度。 - 这个函数非常直观,可以快速获得字符串的长度,常用于循环控制或判断字符串是否为空。 2. **检查字符串是否为空**: - `BOOL ...

    VC中各种数据类型转换

    要将 `TCHAR` 转换为其他类型,可以使用 `_tcslen()` 获取长度,`_tcscpy()` 进行复制,或 `_ttoi()` 将字符串转换为整数。 **4. BSTR** `BSTR` 是COM(Component Object Model)接口中用于表示Unicode字符串的类型...

    C/C++的CString成员函数用法大全

    获取字符串长度 `int GetLength() const;`:返回字符串的长度,不包含结尾的空字符。 字符串反转 `void MakeReverse();`:颠倒字符串的顺序。 字符串大小写转换 `void MakeUpper();`:将小写字母转换为大写字母...

    CString源码.txt

    `:获取字符串长度。 - `int GetAllocLength() const;`:获取分配长度。 - `BOOL IsEmpty() const;`:判断字符串是否为空。 - `void Empty();`:清空字符串内容。 - `const CString& operator=(const CString& ...

    获取系统盘及类型

    该函数用于获取当前计算机上的所有逻辑驱动器名称,并将其存储在一个字符串数组中。函数原型如下: ```c++ DWORD GetLogicalDriveStrings( DWORD nBufferLength, // 缓冲区大小 LPTSTR lpBuffer // 指向缓存区的...

    CString用法大全

    2. 获取字符串长度: - `GetLength()`:返回字符串的长度,不包括末尾的空字符。例如,`csStr.GetLength()`将返回字符串的实际字符数。 3. 字符串操作: - `MakeReverse()`:反转字符串中的字符顺序。如`csStr....

    CString成员函数用法大全.pdf

    获取字符串长度 CString提供了GetLength()函数来获取字符串的长度,该函数返回字符串的长度,不包含结尾的空字符。 例如: ```c CString csStr = "ABCDEF中文 123456"; printf("%d", csStr.GetLength()); // 输出 ...

    C++ CString类

    **获取字符串长度** ```cpp int GetLength() const; ``` 返回当前字符串的长度,包括实际字符数量但不包含结尾的零字符。 **反转字符串** ```cpp void MakeReverse(); ``` 将字符串中的字符顺序进行反转。例如,...

    MFC 数据类型转换

    `CString` 是MFC中用于处理字符串的一种类型,它提供了丰富的字符串操作功能。有时我们需要将 `CString` 转换为 `char*` 类型,以便于与其他C/C++函数进行交互或用于某些API接口。 **转换方法** 通过类型强制转换...

Global site tag (gtag.js) - Google Analytics