职业IT人-IT人生活圈

 找回密码
 成为会员
搜索
查看: 392|回复: 0

string wstring _bstr_t的互相转换

[复制链接]
爱车车 发表于 2011-9-20 12:46 | 显示全部楼层 |阅读模式
摘要:关于string wstring _bstr_t的互相转换的深入研究。

5f9e93b1f3dd1b0308230202.jpg
  今天在研究VC++ 使用 ADO 读取MS SQKSERVER 数据库时, 发现:
  string ansi字符串
  wstring unicode字符串
  _bstr_t com字符串
  之间的转换关系,示例如下:
  1.   // ex_02_wstring_cv_string.cpp : 定义控制台应用程序的入口点。
  2.   //
  3.   #include "stdafx.h"
  4.   #include "string"
  5.   #include "icrsint.h"
  6.   #include "comutil.h"
  7.   using namespace std;
  8.   #import "C:\Program Files\Common Files\System\ADO\msado15.dll" no_namespace rename("EOF", "EndOfFile")
  9.   int _tmain(int argc, _TCHAR* argv[])
  10.   {
  11.   CoInitialize(NULL);
  12.   wstring ws1,ws2;
  13.   ws2 = L"春如旧,人空瘦,泪痕红浥鲛绡透。桃花落,闲池阁,山盟虽在,锦书难托。莫、莫、莫。";
  14.   // 从 unicode 字符串转化为 ansi字符串
  15.   string s = (char *) _bstr_t ( ws2.c_str() );
  16.   // 从 ansi字符串转化为 unicode 字符串
  17.   ws1 = ( wchar_t *) ( _bstr_t ( s.c_str( ) ));
  18.   setlocale(LC_ALL, "chs");
  19.   wprintf( L"原wstring串=%s
  20. ",ws2.c_str());
  21.   printf( "转换为string串=%s
  22. ", s.c_str());
  23.   wprintf( L"转换为wstring串=%s
  24. ",ws1.c_str());
  25.   ::CoUninitialize();
  26.   getchar();
  27.   return 0;
  28.   }
复制代码
  --- 结果 ---
  原wstring串=春如旧,人空瘦,泪痕红浥鲛绡透。桃花落,闲池阁,山盟虽在,锦书难托。莫、莫、莫。
  转换为string串=春如旧,人空瘦,泪痕红浥鲛绡透。桃花落,闲池阁,山盟虽在,锦书难托。莫、莫、莫。
  转换为wstring串=春如旧,人空瘦,泪痕红浥鲛绡透。桃花落,闲池阁,山盟虽在,锦书难托。莫、莫、莫。
您需要登录后才可以回帖 登录 | 成为会员

本版积分规则

QQ|手机版|小黑屋|网站帮助|职业IT人-IT人生活圈 ( 粤ICP备12053935号-1 )|网站地图
本站文章版权归原发布者及原出处所有。内容为作者个人观点,并不代表本站赞同其观点和对其真实性负责,本站只提供参考并不构成任何投资及应用建议。本站是信息平台,网站上部分文章为转载,并不用于任何商业目的,我们已经尽可能的对作者和来源进行了通告,但是能力有限或疏忽造成漏登,请及时联系我们,我们将根据著作权人的要求立即更正或者删除有关内容。

GMT+8, 2024-5-1 06:09 , Processed in 0.149378 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表