以前看《Window核心编程》,感觉多字节和宽字节之间还比较麻烦的,至少MultiByteToWideChar函数和WideCharToMultiByte函数有足够多的参数的意义让我们去理解。近日接触了ATL的一个很好的字符串的转换宏:A2W和W2A。
用法很简单,A2W的用法:
#include <atlconv.h>
DoSomething(LPWSTR str); // 函数声明
USES_CONVERSION;
DoSomething(A2W( " SomeString "));
DoSomething(LPWSTR str); // 函数声明
USES_CONVERSION;
DoSomething(A2W( " SomeString "));
W2A的用法:
#include <atlconv.h>
DoSomething(LPCSTR str); // 函数声明
USES_CONVERSION;
DoSomething(W2A(L " SomeString "));
DoSomething(LPCSTR str); // 函数声明
USES_CONVERSION;
DoSomething(W2A(L " SomeString "));
另外使用这两个宏时最好把它们单独放入一个函数实现,具体原因见:
谨慎使用A2W等字符转换宏
这儿一篇详细介绍这两个宏的原理的文章:VC中一个关于宏的使用问题。
本文介绍了ATL库中用于字符串转换的A2W和W2A宏的简单用法及注意事项,包括如何在函数中使用这些宏,并提供了避免潜在问题的方法。
553

被折叠的 条评论
为什么被折叠?



