天天看點

CString與指針的互相轉換

簡要說一下CString與指針的互相轉換的做法

首先我們知道,指針是指向了記憶體中的一塊位址,那位址是unsigned __int64類型

那麼把指針轉為CString我們的思路就是

1、先把指針轉成unsigned __int64

2、把unsigned __int64轉成CString

當把這個CString作為參數傳出去後,我們想在别的地方把CString再轉回指針,思路與上面一樣

1、把CString轉成unsigned __int64

2、把unsigned __int64轉成指針

下面貼上代碼

指針轉為CString

int nTest = 5;
	int *pTest1 = &nTest;

	CString strTest;
	//指針轉無符号64整型
	uintptr_t nTest1 = (uintptr_t)pTest1;
	//無符号64整型轉指針
	strTest.Format(_T("%I64u"), nTest1);
           

CString轉指針

unsigned __int64 nTest2;

	const char *pChar = nullptr;
	//把CString轉為string
	string str = (CW2A)strTest;
	//把string轉為char*
	pChar = str.c_str();

	//将字元串轉為無符号64整型
	nTest2 = _atoi64(pChar);
	//無符号64整型轉指針
	int *pTest2 = (int *)nTest2;
           

繼續閱讀