數據類型

第一節數據類型

 

Windows字符串指針類型中的LPCSTR, LPSTR, LPCTSTR, LPTSTR四種數據類型。

  這四種數據類型都為字符串指針類型。

1.LPCSTR──是32位靜態字符串指針。其賦值方法為:

LPCSTR  lpstr = “c++”;

2.LPSTR ──是32位字符串指針,其賦值方法為:

LPSTR  lpstr;

lpstr = new char[256]; 

3.LPCTSTR──是32位靜態Unicode型字符串指針,其賦值方法為:

LPCTSTR lpstr = _T(“c++”);

4.LPTSTR──是32Unicode型字符串指針,其賦值方法為:

LPTSTR lpstr;

lpstr = new TCHAR[256];

 

 

幾種數據類型的相互轉換:

 

1.BSTR類型與CString類型相互轉換

BSTR的賦值方法:

BSTR bstr = NULL;

bstr = SysAllocString(L”c++”); //LPCWSTR構造

SysFreeString(bstr);

BSTR轉換成CString可以使用強制類型轉換

CString str = (CString)bstr;

也可以使用C++中的類型轉換方法static_cast;

CString轉換成BSTR:

CString str1(“c++”);

BSTR bstr1 = str1.AllocSysString();

2._bstr_t與其他字符串類型轉換

_bstr_t可以直接進行賦值。

# include “COMDEF.H”

_bstr_t tbstr = “c++”;

LPCSTRCString轉換:

LPCSTR lpstr = tbstr;

CString  str = (LPCSTR)tbstr;

BSTR轉換:

BSTR bstr = tbstr.copy();

SysFreeString(bstr);

_bstr_t  tbstr1 = bstr;

3.VARIANT

VARIANT的初始化方法:

VARIANT variant;

V_VT(&variant) = VT_I4; //4個字節整形數

也可以用函數VariantInit()賦值:

VARIANT  variant;

CString str;

VariantInit(&variant);

variant.vt = VT_BSTR;

variant.bstrVal = str.AllocSysString();

給其他類型賦值的范例:

VARIANT variant;

double dbVal;

dbVal = V_R8(&variant);

4._variant_t與字符串類型的轉換

_variant_tVARIANT的包裝類,可以進行相接賦值

BSTR轉換成_variant_t

BSTR  bstr = SysAllocString(L”c++”);

_variant_t  tvariant = (BSTR)bstr;

_bstr_t轉換成_variant_t

_bstr_t  tbstr = “c++”;

tvariant = tbstr;

_variant_t轉換成CString

_variant_t  tvariant = “c++”;

CString str = (char*)(_bstr_t)tvariant;

5.COleVariant

COleVariantMFC中對VARIANT類型的封裝。其可以通過構造函數賦值,也可以用CString類型直接賦值。

VARIANT互換的方法:

COleVariant oleVar = _T(“c++”);

const VARIANT *variant = LPCVARIANT(oleVar);

 

VARIANT  variant;

COleVariant  oleVar;

OleVar.Attach(variant); //通過Attach函數將VARIANT類型綁定到COleVariant對象。

发布了17 篇原创文章 · 获赞 0 · 访问量 2197

猜你喜欢

转载自blog.csdn.net/jeansmy111/article/details/2257699