VARENUM 中的 VT_I2 、VT_R4 等是什么意思??

CCDDzclxy 2013-09-12 02:00:36

enum VARENUM
{ VT_EMPTY = 0,
VT_NULL = 1,
VT_I2 = 2,
VT_I4 = 3,
VT_R4 = 4,
VT_R8 = 5,
VT_CY = 6,
VT_DATE = 7,
VT_BSTR = 8,
VT_DISPATCH = 9,
VT_ERROR = 10,
VT_BOOL = 11,
VT_VARIANT = 12,
VT_UNKNOWN = 13,
VT_DECIMAL = 14,
VT_I1 = 16,
VT_UI1 = 17,
VT_UI2 = 18,
VT_UI4 = 19,
VT_I8 = 20,
VT_UI8 = 21,
VT_INT = 22,
VT_UINT = 23,
VT_VOID = 24,
VT_HRESULT = 25,
VT_PTR = 26,
VT_SAFEARRAY = 27,
VT_CARRAY = 28,
VT_USERDEFINED = 29,
VT_LPSTR = 30,
VT_LPWSTR = 31,
VT_RECORD = 36,
VT_INT_PTR = 37,
VT_UINT_PTR = 38,
VT_FILETIME = 64,
VT_BLOB = 65,
VT_STREAM = 66,
VT_STORAGE = 67,
VT_STREAMED_OBJECT = 68,
VT_STORED_OBJECT = 69,
VT_BLOB_OBJECT = 70,
VT_CF = 71,
VT_CLSID = 72,
VT_VERSIONED_STREAM = 73,
VT_BSTR_BLOB = 0xfff,
VT_VECTOR = 0x1000,
VT_ARRAY = 0x2000,
VT_BYREF = 0x4000,
VT_RESERVED = 0x8000,
VT_ILLEGAL = 0xffff,
VT_ILLEGALMASKED = 0xfff,
VT_TYPEMASK = 0xfff
} ;


VARENUM 中的有些项 如: VT_EMPTY、VT_INT 等一看就知道是什么含义,而有些则看着不太明白是什么意思,如 :VT_I1、VT_I2,VT_I4、VT_R4、VT_R8 等,这些具体是对应什么数据类型 ??可有官方的说明 ??

请大家说明下,任何 指点、资料、链接 都可以。感谢。


...全文
4809 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
见习学术士 2013-09-12
  • 打赏
  • 举报
回复 2
直接上代码-_-##


string CAdoConnection::VariantToString(const _variant_t &var)
{
	string strValue;
	TCHAR szValue[1024] = {0x00};

	switch (var.vt)
	{
	case VT_BSTR://字符串
	case VT_LPSTR://字符串
	case VT_LPWSTR://字符串
		strValue = (LPCTSTR)(_bstr_t)var;
		break;

	case VT_I1:
	case VT_UI1:
		_stprintf(szValue, _T("%d"), var.bVal);
		strValue = szValue;
		break;

	case VT_I2://短整型
		_stprintf(szValue, _T("%d"), var.iVal);
		strValue = szValue;
		break;

	case VT_UI2://无符号短整型
		_stprintf(szValue, _T("%d"), var.uiVal);
		strValue = szValue;
		break;

	case VT_INT://整型
		_stprintf(szValue, _T("%d"), var.intVal);
		strValue = szValue;
		break;

	case VT_I4: //整型
		_stprintf(szValue, _T("%d"), var.lVal);
		strValue = szValue;
		break;

	case VT_I8: //长整型
		_stprintf(szValue, _T("%ld"), var.bVal);
		strValue = szValue;
		break;

	case VT_UINT://无符号整型
		_stprintf(szValue, _T("%u"), var.uintVal);
		strValue = szValue;
		break;

	case VT_UI4: //无符号整型
		_stprintf(szValue, _T("%u"), var.ulVal);
		strValue = szValue;
		break;

	case VT_UI8: //无符号长整型
		_stprintf(szValue, _T("%u"), var.ulVal);
		strValue = szValue;
		break;

	case VT_VOID:
		_stprintf(szValue, _T("%8x"), (unsigned int)var.byref);
		strValue = szValue;
		break;

	case VT_R4://浮点型
		_stprintf(szValue, _T("%.4f"), var.fltVal);
		strValue = szValue;
		break;

	case VT_R8://双精度型
		_stprintf(szValue, _T("%.8f"), var.dblVal);
		strValue = szValue;
		break;

	case VT_DECIMAL: //小数
		_stprintf(szValue, _T("%.8f"), (double)var);
		strValue = szValue;
		break;

	case VT_CY:
		{
			COleCurrency cy = var.cyVal;
			strValue = cy.Format();
		}
		break;

	case VT_BLOB:
	case VT_BLOB_OBJECT:
	case 0x2011:
		strValue = "[BLOB]";
		break;

	case VT_BOOL://布尔型
		strValue = var.boolVal ? "TRUE" : "FALSE";
		break;

	case VT_DATE: //日期型
		{
			DATE dt = var.date;
			COleDateTime da = COleDateTime(dt); 
			strValue = da.Format("%Y-%m-%d %H:%M:%S");
		}
		break;

	case VT_NULL://NULL值
		strValue = "VT_NULL";
		break;

	case VT_EMPTY://空
		strValue = "";
		break;

	case VT_UNKNOWN://未知类型
	default:
		strValue = "UN_KNOWN";
		break;
	}

	return strValue;
}
CCDDzclxy 2013-09-12
  • 打赏
  • 举报
回复
引用 5 楼 tiger9991 的回复:
别忘记结贴啊,结贴率有点低啊
结贴率 还好吧~~ 立马结
CCDDzclxy 2013-09-12
  • 打赏
  • 举报
回复
傻X 2013-09-12
  • 打赏
  • 举报
回复
别忘记结贴啊,结贴率有点低啊
modyaj 2013-09-12
  • 打赏
  • 举报
回复
引用 3 楼 tiger9991 的回复:
看看这个 look
有时候用到一些插件的时候 就没有 头疼死了
傻X 2013-09-12
  • 打赏
  • 举报
回复
看看这个 look
CCDDzclxy 2013-09-12
  • 打赏
  • 举报
回复
引用 1 楼 tiger9991 的回复:
VT_I1 1字节整形 char VT_I2 2字节整形 short VT_I4 4字节整形 int VT_R4 = 4, float VT_R8 = 5, double
有没有 哪边有全部的解释的啊??
傻X 2013-09-12
  • 打赏
  • 举报
回复
VT_I1 1字节整形 char VT_I2 2字节整形 short VT_I4 4字节整形 int VT_R4 = 4, float VT_R8 = 5, double

16,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧