Format显示数字有关问题

Format显示数字问题
遇到一个相当奇怪的问题. 想用str字符串显示一个状态码.

typedef struct
{
unsigned short Head;
unsigned char Command;
unsigned short Packet_Length;
unsigned short State;
unsigned char Crc8;
}Return_State;Return_State* pReturn_State;
str.Format(_T("WIFI State: %x",pReturn_State->State));
调试以上这行时候,pReturn_State->State = 0x0001;
但str显示的是"WIFI State: 96b7547a" 好奇怪的事情. 理论上应该显示WIFI State: 1才对啊.
另外我明明是无符号数,也可以排除正负数引起的问题吧.

------解决方案--------------------
确定是在Debug下调试,Release下调试时看到的值基本上都不太正确;

试试把unsigned short State;改成unsigned long State;
或者直接 str.Format(_T("WIFI State: %x",1));看看结果如何,是不是改错了cpp文件。

------解决方案--------------------
str.Format(_T("WIFI State: %x",pReturn_State->State));
%x---->是以十六进制整数形式显示
你改成%d 应该能达到你显示WIFI State: 1的要求了
------解决方案--------------------
str.Format(_T("WIFI State: %x",pReturn_State->State));
试试:
str.Format(_T("WIFI State: %x"),pReturn_State->State);

------解决方案--------------------
str.Format(_T("WIFI State: %x",pReturn_State->State));
str.Format(_T("WIFI State: %x"),pReturn_State->State);

------解决方案--------------------
探讨

str.Format(_T("WIFI State: %x",pReturn_State->State));
试试:
str.Format(_T("WIFI State: %x"),pReturn_State->State);

------解决方案--------------------
typedef struct
{
unsigned short Head; 
unsigned char Command; 
unsigned short Packet_Length; 
unsigned short State;
unsigned char Crc8;
}Return_State;
这个结构体是自己设计的?
符合内存对其吗?