关于COleVariant和CString之间的一个怪问题,谨以此贴献给曾经奇怪,正在奇怪,和将来不想奇怪的各位兄弟!!! 你试一下strMy=(TCHAR *)ole.bstrVal 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 应该是:CString strMy;COlevariant oleMy;m_pSet->GetFieldValue(0, oleMy); //m_pSet为CDaoRecordset,且打开无误。if(oleMy.vt == VI_BSTR){ strMy = V_BSTRT(&ole);}你试试先 你在 _MBCS 方式下把 BSTR 类型直接强制转换成 LPCTSTR 当然不行了!解决方法:1、直接用 WideCharToMultiByte API2、#include <comdef.h>_bstr_t bstrVal;LPCTSTR lpszVal;bstrVal = oleMy;lpszVal = (LPCTSTR)bstrVal; 真的是见鬼了,我刚才用大家的方法试了一下,各位所用的方法都可以(好象ab大哥的方法会出乱码),然后我再试strMy = (LPCSTR)oleMy.bstrVal又可以了,谢谢各位!! 识别硬盘和光驱 请看看这段代码那里出错了? 多个线程同时向主对话框发送SendMessage,主对话框是按顺序执行消息么?我不知道这里需不需要互斥。 请问怎么获得某个进程所创建的互斥量啊 像VC那样左边的浮动窗口与主框架如何通信? 兄弟们,我想买书,做参考用,请指点一下! VC7和VC6可以共存吗? 那里有cSerialPort的类可供下载?高分求救! 那里有王士元的《C语言高级编程》的电子书下载! 如何创建一个程序的快捷方式?如何把一个程序的快捷方式加到启动组里? 急!RGB(红绿兰)与ESL(色调,饱和度,亮度)如何转化? 如何让一个程序不会重复启动
CString strMy;
COlevariant oleMy;m_pSet->GetFieldValue(0, oleMy); //m_pSet为CDaoRecordset,且打开无误。
if(oleMy.vt == VI_BSTR)
{
strMy = V_BSTRT(&ole);
}你试试先
解决方法:
1、直接用 WideCharToMultiByte API
2、#include <comdef.h>
_bstr_t bstrVal;
LPCTSTR lpszVal;bstrVal = oleMy;
lpszVal = (LPCTSTR)bstrVal;
strMy = (LPCSTR)oleMy.bstrVal又可以了,谢谢各位!!