COleVariant olevarint;
const VARIANT* variant;
m_pRecordSet->GetFieldValue("abc",oldvarint);
variant=(LPCVARIANT)olevarint;
if(variant->vt & VT_BYREF) //这是什么意思?
{
...
}
switch(variant->vt)//? {
case VT_I2://什么意思?
strTemp.Format("%d",variant->iVal);
break;
case VT_ERROR:
strTemp.Empty();
break;
case VT_I4:
strTemp.Format("%d",variant->lVal);
break; }
const VARIANT* variant;
m_pRecordSet->GetFieldValue("abc",oldvarint);
variant=(LPCVARIANT)olevarint;
if(variant->vt & VT_BYREF) //这是什么意思?
{
...
}
switch(variant->vt)//? {
case VT_I2://什么意思?
strTemp.Format("%d",variant->iVal);
break;
case VT_ERROR:
strTemp.Empty();
break;
case VT_I4:
strTemp.Format("%d",variant->lVal);
break; }
解决方案 »
- 请教大侠了~
- 如何实现窗体前端显示?
- 灰度等级的调色盘如何实现
- 用户名后面的三角或星表示什么意思?
- 急!急!:怎样封装一个类似与CSoket类的通讯类(使用WSAEventSelect,基于winsok api)
- 如何设置CFormView对话框的背景颜色
- 动态创建的CListCtrl,怎样设置属性使得最多只能选择一行啊?
- 急!急!急!小女子做数字图像处理,利用intel公司的JPEG库打开JPEG文件时,出现error LNK2001,error LNK1120?
- winsocket问题,服务器端用WSAAccept(Listen, NULL, NULL, NULL, 0)返回的socket句柄值是唯一的吗?我想在socket数祖中用它做标识用户的主键,不知可行否?
- 菜鸟提问:要用mciSendString()函数用加什么头文件呢?谢谢!答对立即给分。
- socket的创建(socket,WSASocket)相对来说是非常费时的,怎么样才能重复利用已经创建好的套接字?
- 请大家讨论下ATL的消息映射机制!有几点糊涂的地方,需要帮助
{
...
}
switch(variant->vt)//? {
case VT_I2://什么意思?------------ 说明是类型为 VT_I2,实际就是2字节的整形数
strTemp.Format("%d",variant->iVal);
break;
case VT_ERROR:
strTemp.Empty();
break;
case VT_I4:
strTemp.Format("%d",variant->lVal);
break; }
COleVariant( varSrc ) Copies an existing VARIANT or COleVariant object. The variant type is retained.
COleVariant( pSrc ) Copies an existing VARIANT or COleVariant object. The variant type is retained.
COleVariant( lpszSrc ) Copies a string into the new object, VT_BSTR (UNICODE).
COleVariant( lpszSrc, vtSrc ) Copies a string into the new object. The parameter vtSrc must be VT_BSTR (UNICODE) or VT_BSTRT (ANSI).
COleVariant( strSrc ) Copies a string into the new object, VT_BSTR (UNICODE).
COleVariant( nSrc ) Copies an 8-bit integer into the new object, VT_UI1.
COleVariant( nSrc, vtSrc ) Copies a 16-bit integer (or Boolean value) into the new object. The parameter vtSrc must be VT_I2 or VT_BOOL.
COleVariant( lSrc, vtSrc ) Copies a 32-bit integer (or SCODE value) into the new object. The parameter vtSrc must be VT_I4, VT_ERROR, or VT_BOOL.
COleVariant( curSrc ) Copies a COleCurrency value into the new object, VT_CY.
COleVariant( fltSrc ) Copies a 32-bit floating-point value into the new object, VT_R4.
COleVariant( dblSrc ) Copies a 64-bit floating-point value into the new object, VT_R8.
COleVariant( dateSrc ) Copies a COleDateTime value into the new object, VT_DATE.
COleVariant( arrSrc ) Copies a CByteArray object into the new object, VT_EMPTY.
COleVariant( lbSrc ) Copies a CLongBinary object into the new object, VT_EMPTY.
{
...
}
能不能举例子说明一下上面语句的意思?
当variant被赋一个float--4。00后,variant->vt存放什么?VT_BYREF又是作甚么用的?
{
...
}
它们为什么要按位与呢?
但是在实际的系统和情况下,具体的数据时,是不一样的.
所以它指明了很多存储的地方和方式. 而只有一种是有效的
有效的这一种,正式指明了它当前是什么,比如他可以存放整形
和浮点,但一个时候,它只能放一样有效,那么,为了你正确的取得
具体是什么有效,就用 .vt 来说明了,所以需要根据 .vt 来判断
当前的实际类型,取得数据。
大概的意思和原理就是这样,至于为什么要 按位与,实际就是
判断它是不是那种类型而已。