概述
第一節數據類型
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──是32位Unicode型字符串指針,其賦值方法為:
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++”;
與LPCSTR,CString轉換:
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_t是VARIANT的包裝類,可以進行相接賦值
將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
COleVariant是MFC中對VARIANT類型的封裝。其可以通過構造函數賦值,也可以用CString類型直接賦值。
與VARIANT互換的方法:
COleVariant oleVar = _T(“c++”);
const VARIANT *variant = LPCVARIANT(oleVar);
VARIANT variant;
COleVariant oleVar;
OleVar.Attach(variant); //通過Attach函數將VARIANT類型綁定到COleVariant對象。
最后
以上就是怡然朋友为你收集整理的數據類型的全部内容,希望文章能够帮你解决數據類型所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复