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