结构体里总是第一个变量被清零
记录下遇到的奇葩错误!
typedef struct TRoleObj
{
DWORD q3;//背包负重 重量 【第一个变量 会在发送信息接收信息的时候被清零,原因不明】
DWORD q5;//当前获得到的重量
DWORD q6;
DWORD q1;
DWORD q2;
原因没找到之前,感觉第一个变量q3老是莫名其妙被清零
原因最后找到了,在发送消息的函数里面有个结构体,初始化操作!
void TRoleObj::Send_a_Message(BYTE Data)//dll给exe 夸进程 【发送】消息
{
DbgPringtf_Mine3("---4566-------q1:【%d】---q2:[%d]-【q3:%d】-q4:%d,q5;%d,q6:[%d]--------------\r\n", q1, q2, q3, q4, q5, q6);
Msginfomtain a;
memset(this, 0, sizeof(a));//这里初始化 会导致的 TRoleObj 第一个变量被清零
注释掉初始化这句就好了。
void TRoleObj::Send_a_Message(BYTE Data)//dll给exe 夸进程 【发送】消息
{
DbgPringtf_Mine3("---4566-------q1:【%d】---q2:[%d]-【q3:%d】-q4:%d,q5;%d,q6:[%d]--------------\r\n", q1, q2, q3, q4, q5, q6);
Msginfomtain a;
//memset(this, 0, sizeof(a));//这里初始化 会导致的 TRoleObj 第一个变量被清零
但不甘心,想找个方法解决下,尝试
typedef struct TRoleObj
{
DWORD q3;//背包负重 重量 【第一个变量 会在发送信息接收信息的时候被清零,原因不明】
DWORD q5;//当前获得到的重量
DWORD q6;
DWORD q1;
DWORD q2;
//void Is_The_Package_full();//挖肉后的 包裹是否满了
DWORD q4;//上一次获得到的重量
Msginfomtain a;
在结构里里定义这个结构体,然后还是初始化,但这次清零的就不是一个变量了,变成四个变量了!
最终,解决结构体第一个变量被清零的方法只有,注释掉memset这句了
void TRoleObj::Send_a_Message(BYTE Data)//dll给exe 夸进程 【发送】消息
{
Msginfomtain a;
//memset(this, 0, sizeof(a));//这里初始化 会导致的 TRoleObj 第一个变量被清零