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

在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.****.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();