简要说一下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;