首先 0x22d3是十六进制的。你说的int s = 0x22d3;是编译器自动把十六进制转换成10进制然后传给S的。你可以这样儿赋值,但是若是显示S的值,那么编译器还是会转换成10进制显示。因为赋值之前十六进制就已经转换成十进制了。
所以你要想把CString str=“0x22d3” 转换成int 转换的结果是10进制的。不可能是0x22d3的形式。
所以你可以定义一个十六进制的变量 然后把CString str的值转成int再赋值就行了。
#include
#pragma comment(lib,"shlwapi.lib")
CString s;
int i;
::StrToIntExW(s,STIF_SUPPORT_HEX,&i);
可以使用int atoi()这个函数来将字符串转换成整形数据,这表函数的返回值是int类型的。