ATL字符宏使用以及代码测试
2014-03-27 12:01
113 查看
// ATL_Convert.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" #include <iostream> #include <atlconv.h> #include <tchar.h> #include <stdio.h> //USES_CONVERSION; //使用ATL字符转换宏 int _tmain(int argc, _TCHAR* argv[]) { char a[12] = "china"; USES_CONVERSION; ::MessageBoxW(NULL, A2W(a), L"",MB_ICONASTERISK | MB_TASKMODAL | MB_OK); system("pause"); return 0; }
View Code
有比MultiByteToWideChar和WideCharToMultiByte更简单的字符串转换宏,你相信吗?
头文件
d:\program files\microsoft visual studio 8\vc\atlmfc\include\atlconv.h
如果要使用ATL字符串转换宏,请先定义
USES_CONVERSION; // 只需要调用一次,就可以在函数中进行多次转换
下面一个例子:
USES_CONVERSION; // 只需要调用一次,就可以在函数中进行多次转换
char a[12] = "china";
::MessageBoxW( NULL, A2W(a), L"", MB_ICONASTERISK|MB_TASKMODAL|MB_OK );
使用 ATL 转换宏,由于不用释放临时空间,所以使用起来非常方便。但是考虑到栈空间的尺寸(VC 默认2M),使用时要注意几点:
1、只适合于进行短字符串的转换;
2、不要试图在一个次数比较多的循环体内进行转换;
3、不要试图对字符型文件内容进行转换,因为文件尺寸一般情况下是比较大的;
4、对情况 2 和 3,要使用 MultiByteToWideChar() 和 WideCharToMultiByte();
使用 ATL 提供的转换宏。
A2BSTR | OLE2A | T2A | W2A |
A2COLE | OLE2BSTR | T2BSTR | W2BSTR |
A2CT | OLE2CA | T2CA | W2CA |
A2CW | OLE2CT | T2COLE | W2COLE |
A2OLE | OLE2CW | T2CW | W2CT |
A2T | OLE2T | T2OLE | W2OLE |
A2W | OLE2W | T2W | W2T |
2 | 好搞笑的缩写,to 的发音和 2 一样,所以借用来表示“转换为、转换到”的含义。 |
A | ANSI 字符串,也就是 MBCS。 |
W、OLE | 宽字符串,也就是 UNICODE。 |
T | 中间类型T。如果定义了 _UNICODE,则T表示W;如果定义了 _MBCS,则T表示A |
C | const 的缩写 |
相关文章推荐
- Android UI测试框架Espresso以及代码覆盖率jacoco的使用
- selenium+python关于登录的脚本代码,使用了读取excel以及向excel中写入测试结果的方法
- selenium+python关于登录的脚本代码,使用了读取excel以及向excel中写入测试结果的方法
- 使用jUnit对代码进行测试以及测试过程中遇到的问题
- 第一行代码:以太坊(2)-使用Solidity语言开发和测试智能合约
- Maven学习笔记(八)Maven的入门使用—3. 编写测试代码
- 基于 JUnit 使用 Feed4JUnit 实现数据与代码分离的测试
- 使用Record Espresso Test功能自动生成测试代码
- 使用ASUnit单元测试框架测试ActionScript代码
- 在Jmeter中使用自定义编写的Java测试代码
- C#使用Dotfuscator混淆代码以及加密
- 简单的代码片段性能测试 -- 顺便测一下正则和异常的性能(使用循环测试做比较)
- 安装部署(六) Kafka集群安装部署以及Producer和Consumer的JAVA代码测试
- Z缓冲和深度测试以及游戏中播放音乐代码
- AndroidStudio配置SVN以及使用代码管理
- 使用Rational PureCoverage测试代码覆盖率
- [置顶] windows下php7.1安装redis扩展以及redis测试使用全过程
- 使用gcov完成代码覆盖率的测试
- Control Study->AdRotator广告控件显示自定义配置文件中广告以及与DataGrid控件结合使用显示图片(示例代码下载)