摘要: 转自http://www.cppblog.com/lizao2/articles/169250.html概述 它被描述成一个与自动化相兼容的类型,由于操作系统提供相应的API函数(如SysAllocString)来管理它以及一些默认的调度代码。因此BSTR实际上就是一个COM字符串,但它却在自动化技术以外的多种场合下得到广泛使用。为什么需要BSTR COM是一种跨编程语言的平台,需要提供语言无关的数据类型。多数编程语言有自己的字符串表示。 ●C++ 字符串是以0结束的ASCII或Unicode字符数组。 ●Visual Basic字符串是一个ASCII字符数组加上表示长度的前缀。 ●... 阅读全文
posted @ 2014-03-27 18:08 言止予思 阅读(376) 评论(0) 推荐(0) 编辑
摘要: 1 // BSTR_Convert.cpp : 定义控制台应用程序的入口点。 2 // 3 4 #include "stdafx.h" 5 #include // _com_util::ConvertBSTRToString 6 #include //CComBSTR 7 #include 8 9 #pragma comment(lib, "comsuppw.lib")10 11 using namespace _com_util;12 13 int _tmain(int argc, _TCHAR* argv[])14 {15 /****** BSTR- 阅读全文
posted @ 2014-03-27 18:05 言止予思 阅读(1426) 评论(0) 推荐(0) 编辑
摘要: Linux下面的没有命名为 WideCharToMultiByte() 和 MultiByteToWideChar() 函数,WideCharToMultiByte,MultiByteToWideChar是windows下的函数,在linux下也有类似的两个函数:mbstowcs()wcstombs()值得注意的是:size_t mbstowcs(wchar_t *wcstr,const char *mbstr,size_t count);这个函数的第三个参数count,大小一定要是mbstr长度的2倍,否则出来的中文也会是乱码。测试一下: setlocale(LC_ALL,"zh_ 阅读全文
posted @ 2014-03-27 13:26 言止予思 阅读(1138) 评论(0) 推荐(0) 编辑
摘要: 1 // ATL_Convert.cpp : 定义控制台应用程序的入口点。 2 // 3 4 #include "stdafx.h" 5 #include 6 #include 7 #include 8 #include 9 10 11 //USES_CONVERSION; //使用ATL字符转换宏12 13 int _tmain(int argc, _TCHAR* argv[])14 {15 char a[12] = "china";16 USES_CONVERSION;17 ::MessageBoxW(NULL, A2W(a), L"&qu 阅读全文
posted @ 2014-03-27 12:01 言止予思 阅读(321) 评论(0) 推荐(0) 编辑