下面的这个例子使用 Win32 API 函数和通用数据类型设置 C 盘的卷标。 //****************** // drvsvl.cpp
#include <windows.h> #include <iostream.h>
void main() { BOOL success; char volumeName[MAX_PATH];
cout << "输入新的 C 盘卷标:"; cin >> volumeName;
success = SetVolumeLabel("c:\\", volumeName); if (success) cout << "成功\n"; else cout << "错误代码:" << GetLastError() << endl; } 通过使用 TCHAR 数据类型,将这段代码最上面的字符数组声明为两个字节的字符。TEXT 宏再次被用于字符串常量: void main() { BOOL success;
TCHAR volumeName[MAX_PATH];
cout << TEXT("输入新的 C 盘卷标: "); cin >> volumeName;
success = SetVolumeLabel(TEXT("c:\\" ), volumeName); if (success) cout << TEXT("成功\n"); else cout << TEXT("错误代码:") << GetLastError() << endl; } Visual C++ 中的通用数据类型 Visual C++ 提供了几种 MFC 专用的数据类型用于创建具有国际化特性的应用程序。这些定义很通用,完全可以在 UNICODE、ASCII、DBCS (双字节字符集) 和 MBCS (多字节字符集)。由于篇幅所限,本文不打算涉及所有上面提到的这些字符集。有关它们的详细资料请参考相关资料。MFC 提供了一种透明的方式来实现这些字符集。通用数据类型的映射到哪个字符集以及映射方式是根据工程的设置决定的,默认值为 ASCII 模式,其它几个可选项是 MBCS、DBCS 或者 UNICODE。本文主要讨论 UNICODE,所以下表中只列出了 ASCII 与 UNICODE 字符之间的映射关系:
结束语 综上所述可以看到,编译 UNICODE 版本的程序并不难。只是在编写代码时记住函数调用上些微的变化。微软为此提供的扩展是开发人员能够以透明的方式选择所用的字符集,为应用软件的国际化打开了方便之门。 |
UNICODE 编程入门(3)
最新推荐文章于 2022-02-25 23:47:59 发布