各數據類型轉換匯總(親測)包括MFC、OpenCV、Halcon等

持續更新。。。

1、CString轉Const Char*

CString strTemp=_T("測試");
Const Char* charTemp=CT2A(strTemp);

2、CString與string轉換

/*方法1*/
USES_CONVERSION;
CString CStrFileName = dlgFile.GetPathName();
std::string strFileName = W2A(CStrFileName.GetBuffer());
CStrFileName.ReleaseBuffer();
/*方法2*/
CString strTemp;
String_t strDevice ="000";
strTemp = strDevice.c_str();

3、Halcon中HTuple與VC++數據類型的轉換、賦值

//HTuple 中字符格式爲多字節,Unicode字符集爲寬字節
//字符集爲使用 Unicode 字符集時,用W2A轉換爲多字節:
USES_CONVERSION;
CString strTemp=_T("哈哈");
HTuple hvTemp = W2A(strTemp);
strTemp=A2W(hvTemp .S());
//字符集爲使用多字節字符集時,直接等於:
CString strTemp=_T("哈哈");
HTuple hvTemp = strTemp;
strTemp=hvTemp .S();
HTuple與double
HTuple hvTemp;
hvTemp[0]=11.1;
hvTemp[1]=22.2;
double dbValue0=hvTemp[0].D();
double dbValue1=hvTemp[1].D();
hvTemp[0]=dbValue0;
hvTemp[1]=dbValue1;

4、圖片類型的互相轉換CImage、HBITMAP、CBitmap

/*讀取已知圖片路徑的圖片及轉換*/
CString strName=—_T("D://1.bmp");
HBITMAP hBmp0 = (HBITMAP)LoadImage(AfxGetInstanceHandle(), strName, IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE | LR_CREATEDIBSECTION);
CImage m_Image;
CBitmap bitmap;	
HBITMAP hBmp1 = (HBITMAP)bitmap.GetSafeHandle();
if (!m_Image.IsNull())
m_Image.Destroy();
m_Image.Attach(hBmp1);

5、TCHAR與CString轉換

/*TCHAR與CString*/
CString strTemp=_T("666");
TCHAR szTemp[MAX_PATH];
memset(szTemp, 0, sizeof(TCHAR)*MAX_PATH);
_tcsncpy(szTemp, strTemp, strTemp.GetLength());
strTemp.Format(_T("%s"), szTemp);	

5、CString與int轉換

strValue.Format(L"%d", 1);//float爲"%f"
int  a = _ttoi(strValue);

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章