请问怎么将一个VARIANT型的变量转换为一个CString型的变量? 如题/谢谢 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 COleVariant 类通逢装了 VARIANT 结构。实际的数据就在 VARIANT 结构中。 使用 COleVariant 的两个操作 operator LPCVARIANT Converts a COleVariant value into an LPCVARIANT. operator LPVARIANT Converts a COleVariant object into an LPVARIANT. 可以得到 VARIANT 结构。其区别是,前者是个拷贝操作,将 VARIANT 结构的内容拷贝到目标中去,后者仅仅返回 VARIANT 结构的指针。不管那种情况,现在我们都能访问到 VARIANT 所包含的数据了。余下的问题是如何解释数 据内容。 VARIANT 结构包含两部分。其一是 VARTYPE 型的成员变量vt;其二是个联合类型,这个联合包含了VC常用的几乎所有类型。因为联合用的是相同的存储空间,因此对联合的内容的解释依赖于 vt。 例如, 若 vt 的值是 VT_UI2, 说明该联合被解释为short int. 并使用成员变量名 iVal。 若 vt 的的值是 VT_BSTR,说明该联合被解释为 BSTR 类型。并使用成员变量名 bstrVal。 若 vt 的的值是 VT_BSTR|VT_BYREF,说明该联合被解释为BSTR 型指针。并使用成员变量名 pbstrVal。 (其他详见 VARIANT 的联机帮助) ********************************* 若从数据库返回的是简单类型,如 short, long, 等,则直接引用既可。(主持人注:COleVariant类重载了“=”操作符,所以常用类型可以直接转换)若返回的是字符串类型,则有可能是 bstrVal 或pbstrVal。依赖于数据库服务程序。 BSTR 实际上就是个unicode 字符串,CString 的构造函数和赋值操作都能直接识别这一类型。 CString str=(LPCTSTR)(_bstr_t)YourVariant; 还有一种方法,CString str=(LPCSTR)variant.bstrVal; 关于dll的几个问题 关于指向函数的指针的问题 如何正确接收socket传输的数据 请教问题?谢谢! 已知表名,如何获得表的字段名称(vc+ado) 如何改变主窗口的caption? 高分相赠,请给我两个用vc开发数据库的例子!非常感谢!在线等待! 关于文件操作的一个小问题 请问各位如何在注册表中得到windows的安装信息?存在哪里? 关于字符串取部分的问题 每个线程都拥有自己的消息队列吗? Access
使用 COleVariant 的两个操作
operator LPCVARIANT
Converts a COleVariant value into an LPCVARIANT.
operator LPVARIANT
Converts a COleVariant object into an LPVARIANT.
可以得到 VARIANT 结构。其区别是,前者是个拷贝操作,将 VARIANT 结构的内容拷贝到目标中去,后者仅仅返回
VARIANT 结构的指针。不管那种情况,现在我们都能访问到 VARIANT 所包含的数据了。余下的问题是如何解释数
据内容。
VARIANT 结构包含两部分。其一是 VARTYPE 型的成员变量vt;其二是个联合类型,这个联合包含了VC常用的几乎所有类型。因为联合用的是相同的存储空间,因此对联合的内容的解释依赖于 vt。
例如,
若 vt 的值是 VT_UI2, 说明该联合被解释为short int. 并使用成员变量名 iVal。
若 vt 的的值是 VT_BSTR,说明该联合被解释为 BSTR 类型。并使用成员变量名 bstrVal。
若 vt 的的值是 VT_BSTR|VT_BYREF,说明该联合被解释为BSTR 型指针。并使用成员变量名 pbstrVal。
(其他详见 VARIANT 的联机帮助)
*********************************
若从数据库返回的是简单类型,如 short, long, 等,则直接引用既可。(主持人注:COleVariant类重载了“=”操作符,所以常用类型可以直接转换)若返回的是字符串类型,则有可能是 bstrVal 或pbstrVal。依赖于数据库服务程序。 BSTR 实际上就是个unicode 字符串,CString 的构造函数和赋值操作都能直接识别这一类型。