设为首页 加入收藏

TOP

VC++中关于TCHAR等的解释(二)
2014-04-06 17:34:03 来源: 作者: 【 】 浏览:154
Tags:关于 TCHAR 解释

 

  注意:如果你的项目已经隐式或是显式地包含了Windows.h那就不必包含了。

char* 替换: LPSTR
const char* 替换: LPCSTR
WCHAR* 替换: LPWSTR
const WCHAR* 替换: LPCWSTR (C在W之前, 因为 const 在 WCHAR之前)
TCHAR* 替换: LPTSTR
const TCHAR* 替换: LPCTSTR

  现在,希望你可以理解下面的函数原型

  BOOL SetCurrentDirectory( LPCTSTR lpPathName );

  DWORD GetCurrentDirectory(DWORD nBufferLength,LPTSTR lpBuffer);

  继续,你一定见过一些函数/方法让你传递字符集的大小,或者返回它的大小,比如GetCurrentDirectory函数,需要传递字符的数目而不是字节的数目举个例子

  TCHAR sCurrentDir[255];

  // Pass 255 and not 255*2

  GetCurrentDirectory(sCurrentDir, 255);

  另一方面,如果你需要分配字符的数目,你比如分配适当大小的字节,在C++中,你可以简单的使用new方法:

  LPTSTR pBuffer; // TCHAR*

  pBuffer = new TCHAR[128]; // Allocates 128 or 256 BYTES, depending on compilation.

  但是,你如果你使用内存分配函数像malloc,LocalAlloc, GlobalAlloc, 等,你必须指定字节数。

  pBuffer = (TCHAR*) malloc (128 * sizeof(TCHAR) );

  对返回值进行一次类型转换是必需的,如你所知,在malloc的参数中,确定了分配字节的大小,并在内存中开辟相应的空间。

      

首页 上一页 1 2 下一页 尾页 2/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇全排列算法之Perm算法实现 下一篇VC中整型与字符串型之间的转换

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·在 Redis 中如何查看 (2025-12-26 03:19:03)
·Redis在实际应用中, (2025-12-26 03:19:01)
·Redis配置中`require (2025-12-26 03:18:58)
·Asus Armoury Crate (2025-12-26 02:52:33)
·WindowsFX (LinuxFX) (2025-12-26 02:52:30)