簡要說一下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;