我为窗口转换回__int64或长期
#ifdef _WIN64
typedef uint64_t unit_pointer;
# define PRINTF_PTR "%I64x"
#else
typedef unsigned long unit_pointer;
# define PRINTF_PTR "%lx"
#endif
TEST *obj = &test_obj;
char obj_pointer_add[50];
sprintf(obj_pointer_add, PRINTF_PTR, (unit_pointer)obj);
现在我想重新在其他地方obj的指针定义一个指针地址字符地址,因为我知道obj_pointer_add。 我如何将obj_pointer_add转换回unit_pointer?
unit_pointer point_address= (unit_pointer)obj_pointer_add; (ERROR CONVERTING)
TEST *new_obj = reinterpret_cast<TEST *>(point_address); (fail because of pointer_address wrong)
感谢
你怎么知道指针是无符号的64位数? – 2013-03-14 09:06:07
如果您想使用'printf'打印一个指针,您应该使用''%p“'格式。 – 2013-03-14 09:07:23