ATL字符宏使用以及代码测试
2024-10-19 04:25:18
// 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[] = "china";
USES_CONVERSION;
::MessageBoxW(NULL, A2W(a), L"",MB_ICONASTERISK | MB_TASKMODAL | MB_OK);
system("pause");
return ;
}
有比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 的缩写 |
最新文章
- AlloyTouch与three.js 3D模型交互
- Best Coder Round#25 1003 树的非递归访问
- TSQL Merge 用法
- replace截取字段
- 神奇的盒模型(BFC)
- 你得知道这3个最基础的APP技术框架
- CSS 实现:图片+文字的布局(综合)
- 微信JSSDK上传多张图片
- window8左下角窗口和右上角窗口失效解决方法
- 【转】linux shell 正则表达式(BREs,EREs,PREs)差异比较
- jdk的动态代理
- Directive Definition Object
- IntelliJ IDEA 控制台 乱码 有效解决办法
- [Poj3128]Leonardo&#39;s Notebook
- Android 运行时权限及APP适配
- 2、搭建一个简单的Web项目
- SpringBoot+Mybatis+Maven+MySQL逆向工程实现增删改查
- 换PHP7后访问Apache虚拟站点Forbidden的问题解决
- 基于CRF工具的机器学习方法命名实体识别的过
- js如何判断用户是在pc端和还是移动端访问
热门文章
- python学习笔记(17)--eclipse和pydev的安装及汉化
- ios UIImageView异步加载网络图片2
- jackson2.8.4java对象序列化成json字符串格式化时间
- java web中读取properties文件时的路径问题
- GridView截取某一列字符串的长度
- (三)使用预定义模型QDirModel的例子
- RunnableException与CheckedException
- thinkPHP的优缺点
- jquery -- checkbox选中无选中状态
- 将Excel中读取的科学计数法表示的Double数据转换为对应的字符串