VARIANT varXX;
CString strYY;
varXX.vt=VT_BSTR;
varXX.bstrVal = strYY.allocsysstring();
应该可以了。
我也觉得COleVariant要好用一些,呵呵,我都用它。
CString str;
_variant_t var;
var = _variant_t(str);
7。COleVarant 如何转换为 CString?
CString 如何转换为 char *
CString 如何转换为 char[xx] ??
CString 如何转换为 char * wsprintf或者=
CString 如何转换为 char[xx] strcpy()
COleVarant封装了VAREANT类型。
VAREANT类型其实是个巨大地Union,里面自然有你
想要地unsigned char *类型。
CString地GetBuffer和Format可以实现你的后两个问题
8。v_variant_t类型转换成cstring
总提示我cstring未定义
程序如下
_variant_t vfirstname;//存储的是中的数据
CString str;//提示出错
vfirstname=pRs->GetCollect (_variant_t("Phone_Num"));
vfirstname.ChangeType (VT_BSTR);
str=vfirstname.bstrVal;//提示出错
>>CString str;//提示出错
要求include <afx.h>并且设置Use run-time Library为Multithreaded
CString未定义,说明你的工程没有引用MFC!!
要想使你的工程支持MFC,请按照以下步骤作:
1:在你的stdafx.h的头文件中加入:
#include "afxtempl.h"
这是一个囊括了MFC的集合定义的头文件,有了它,你的工程就识别Cstring类了。
2:在你的工程设置中,在General页中,选择“MFC”为“Using MFC in a shared DLL”
OK,现在再编译你的工程即可。
_variant_t的bstrVal成员是BSTR类型。
它是一个指向一个OLECHART*的指针。colevariantcolevariant
(char *)_bstr_t(vfirstname)
或许你还需要一个从UNICODE字符到ANSI字符的转变函数
谢谢大家
给我这么大的支持!:)
用vickowang(小苍)的意见可能会有问题,转换出的字符串应该是乱码。
因为(char *)转换需要一个const的字符串资源,才能强制转换。
所以应该:
_bstr_t bstrTemp = _bstr_t(vfirstname.bstrVal);
TCHAR szTemp[MAX_PATH];
szTemp = (char*)bstrTemp;
9。char * 转换为TCHAR类型??
直接转换,TCHAR相当于char了
char * s;
TCHAR * s1=(TCHAR *)s;
要看你的程序设置是ANSI还是UNICODE, 如果是ANSI,直接转,如果是UNICODE,TCHAR相当于WCHAR, 要用mbstowcsz转一下
Unicode :宽字节字符集
1. 如何取得一个既包含单字节字符又包含双字节字符的字符串的字符个数?
可以调用Microsoft Visual C++的运行期库包含函数_mbslen来操作多字节(既包括单字节也包括双字节)字符串。
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-27731-7.html
全国军民应团结一致
你马云没错
他也是命好