COM编程入门(8)

时间:2025-04-06

COM编程入门,十分浅显易懂

这个CRT函数wcstombs()是个简化版,但它终结了WideCharToMultiByte()的调用,所以最终结果是一样的。其原型如下:

size_t wcstombs (

char* mbstr,

const wchar_t* wcstr,

size_t count );

以下是参数解释:

mbstr:接受结果ANSI串的字符(char)缓冲。

wcstr:要转换的Unicode串。

count:mbstr参数所指的缓冲大小。

wcstombs()在它对WideCharToMultiByte()的调用中使用

WC_COMPOSITECHECK | WC_SEPCHARS标志。用wcstombs()转换前面例子中的Unicode串,结果一样:

wcstombs ( szANSIString, wszSomeString, sizeof(szANSIString) ); CString

MFC中的CString包含有构造函数和接受Unicode串的赋值操作,所以你可以用CString来实现转换。例如:

// 假设有一个Unicode串wszSomeString...

CString str1 ( wszSomeString ); // 用构造器转换

CString str2;

str2 = wszSomeString; // 用赋值操作转换

ATL宏

ATL有一组很方便的宏用于串的转换。W2A()用于将Unicode串转换为ANSI串(记忆方法是“wide to ANSI”——宽字符到ANSI)。实际上使用OLE2A()更精确,“OLE”表示的意思是COM串或者OLE串。下面是使用这些宏的例子: #include <atlconv.h>

// 还是假设有一个Unicode串wszSomeString...

{

char szANSIString [MAX_PATH];

USES_CONVERSION; // 声明这个宏要使用的局部变量

lstrcpy ( szANSIString, OLE2A(wszSomeString) );

}

OLE2A()宏“返回”转换的串的指针,但转换的串被存储在某个临时栈变量中,所以要用lstrcpy()来获得自己的拷贝。其它的几个宏是W2T()(Unicode 到 TCHAR)以及W2CT()(Unicode到常量TCHAR串)。

COM编程入门(8).doc 将本文的Word文档下载到电脑

精彩图片

热门精选

大家正在看

× 游客快捷下载通道(下载后可以自由复制和排版)

限时特价:7 元/份 原价:20元

支付方式:

开通VIP包月会员 特价:29元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219