首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

在WIN32下如何把_variant_t 转为string 或 char* 的类型

2012-03-29 
在WIN32下怎么把_variant_t 转为string 或 char* 的类型我要转换的这个_variant_t time3为时间,运行时可以

在WIN32下怎么把_variant_t 转为string 或 char* 的类型

我要转换的这个_variant_t time3为时间,运行时可以查看到“time3{2010-7-29 0:10:00 VT_DATE}”,“tagVARIANT DATA=40388.006944444445”,“vt 7 DATA 40388.006944444445”.

用下面方法强制转换时就得到乱码:
_variant_t time3; 
(char*)(bstr_t)time3;
 
请问我该如何转换???是win32,没有CString。谢谢了


[解决办法]
LZ先看一下_variant_t结构体,找到里面对应的可转换的类型。
而且把一个date给强制转换成(char*)。。。你想干啥?
[解决办法]
字符串那些事儿:BSTR-LPSTR-LPWSTR-CString-VARIANT-COleVariant-_variant_t-CComBSTR-_bstr_t

http://blog.csdn.net/pizi0475/archive/2010/03/04/5346708.aspx
[解决办法]
CString t(time3);
[解决办法]
(WCHAR*)(OLECHAR*)time3.pbstrVal;
[解决办法]
_variant_t v("hello world");
wchar_t* buf = (wchar_t*)(_bstr_t)b;
转换关系
_bstr_t b(v);
wchar_t* buf = (wchar_t*)b.GetBSTR();

热点排行