VC++ 15个数据类型转换的示例代码

来源:互联网 发布:帝国cms 用户名不合法 编辑:程序博客网 时间:2024/06/06 00:46

如何给VARIANT类型赋值

{VARIANT var;CString strText = _T("");//初始化VARIANT类型变量VariantInit(&var);//给VARIANT类型变量赋值var.vt = VT_I4;var.lVal = (long)100;strText.Format(_T("var = %d"), var.lVal);MessageBox(strText);//清除VARIANT类型变量VariantClear(&var);//给VARIANT类型变量赋值var.vt = VT_R4;var.fltVal = 1.23f;strText.Format(_T("var = %f"), var.fltVal);MessageBox(strText);//改变VARIANT类型变量数据类型VariantChangeType(&var, &var, 0, VT_R8);strText.Format(_T("var = %f"), var.dblVal);MessageBox(strText);}

如何将BSTR类型转换成CString类型

{BSTR bstr = ::SysAllocString(L"Hello world!");//强制转换CString str = (CString)bstr;CString strText = _T("");strText.Format(_T("str = %s"), str);MessageBox(strText);::SysFreeString(bstr);}

如何将BSTR类型转换成TCHAR类型

{BSTR bstr = L"Hello world!";//调用ConvertBSTRToString函数LPTSTR psz = _com_util::ConvertBSTRToString(bstr);CString strText = _T("");strText.Format(_T("psz = %s"), psz);MessageBox(strText);}

如何将BYTE类型转换成WORD类型

{//将2个BYTE类型数据组合成1个WORD类型数据BYTE bLow = 0x00;BYTE bHigh = 0xFF;WORD wValue = MAKEWORD(bLow, bHigh);CString strText = _T("");strText.Format(_T("low-order byte:0x%02X"), bLow);MessageBox(strText);strText.Format(_T("high-order byte:0x%02X"), bHigh);MessageBox(strText);strText.Format(_T("WORD:0x%04X"), wValue);MessageBox(strText);}


如何将BYTE转换成KB、MB和GB


如何将COLORREF类型转换成RGB分量

{COLORREF cr = RGB(255, 128, 0);//R分量BYTE RED = GetRValue(cr);//G分量BYTE GREEN = GetGValue(cr);//B分量BYTE BLUE = GetBValue(cr);CString strText = _T("");strText.Format(_T("COLORREF值:0x%08X"), cr);MessageBox(strText);strText.Format(_T("R分量:0x%02X"), RED);MessageBox(strText);strText.Format(_T("G分量:0x%02X"), GREEN);MessageBox(strText);strText.Format(_T("B分量:0x%02X"), BLUE);MessageBox(strText);}

如何将CString类型转换成BSTR类型

{CString str = _T("Hello world!");//调用CString::AllocSysString函数BSTR bstr = str.AllocSysString();CString strText = _T("");strText.Format(_T("bstr = %s"), (CString)bstr);MessageBox(strText); ::SysAllocString(bstr);}

如何将CString类型转换成TCHAR类型

{CString str = _T("Hello world!");//强制转换LPTSTR psz1 = (LPTSTR)(LPCTSTR)str;//调用CString::GetBuffer函数LPTSTR psz2 = str.GetBuffer(str.GetLength());str.ReleaseBuffer(); CString strText = _T("");strText.Format(_T("psz1 = %s"), psz1);MessageBox(strText);strText.Format(_T("psz2 = %s"), psz2);MessageBox(strText);}

如何将CString类型转换成基本数据类型

{CString str1 = _T("100");CString str2 = _T("1.23");//将整型转换成CStringint a = atoi(str1);//将实型转换成CStringdouble b = atof(str2);CString strText = _T("");strText.Format(_T("a = %d"), a);MessageBox(strText);strText.Format(_T("b = %f"), b);MessageBox(strText);}

如何将DWORD类型转换成WORD类型

{//将1个DWORD类型数据分解成2个WORD类型数据DWORD dwValue = 0xFFAA5500;WORD wLow = LOWORD(dwValue);WORD wHigh = HIWORD(dwValue);CString strText = _T("");strText.Format(_T("DWORD:0x%08X"), dwValue);MessageBox(strText);strText.Format(_T("low-order word:0x%04X, high-order word:0x%04X"), wLow, wHigh);MessageBox(strText);}

如何将TCHAR类型转换成BSTR类型

{TCHAR sz[] = _T("Hello world!");//调用ConvertStringToBSTR函数BSTR bstr1 = _com_util::ConvertStringToBSTR(sz);//使用_bstr_tBSTR bstr2 = _bstr_t(sz);CString strText = _T("");strText.Format(_T("bstr1 = %s"), (CString)bstr1);MessageBox(strText);strText.Format(_T("bstr2 = %s"), (CString)bstr2);MessageBox(strText);}

如何将TCHAR类型转换成CString类型


如何将WORD类型转换成BYTE类型

{//将1个WORD类型数据分解成2个BYTE类型数据WORD wValue = 0xFF00;BYTE bLow = LOBYTE(wValue);BYTE bHigh = HIBYTE(wValue);CString strText = _T("");strText.Format(_T("WORD:0x%04X"), wValue);MessageBox(strText);strText.Format(_T("low-order byte:0x%02X"), bLow);MessageBox(strText);strText.Format(_T("high-order byte:0x%02X"), bHigh);MessageBox(strText);}

如何将WORD类型组合成DWORD类型

{//将2个WORD类型数据组合成1个DWORD类型数据WORD wLow = 0x5500;WORD wHigh = 0xFFAA;DWORD dwValue = MAKELONG(wLow, wHigh);CString strText = _T("");strText.Format(_T("low-order word:0x%04X"), wLow);MessageBox(strText);strText.Format(_T("high-order word:0x%04X"), wHigh);MessageBox(strText);strText.Format(_T("DWORD:0x%08X"), dwValue);MessageBox(strText);}

如何将基本数据类型转换成CString类型