在以mfc建立的工程中,需要建立一个链表来保存一些数据。但是在创建结构体,以及对其赋值的过程中,发现对结构体变量不能观察,添加到监视器中的变量也出现变量名不存在的错误。

首先,在文件的开始定义一个结构体

struct drop_link

{

  int num;

  int x;

  int y;

  struct drop_link *next_node;

};

然后在一个按钮函数中编写以下代码:

int m=9;

struct drop_link drop;

drop.num=1;

drop.x=2;

drop.y=3;

drop.next_node=NULL;

这时对第一行代码添加断点,编译调试时。断点变为灰色直接跳到程序的结尾处。对其中的变量添加到监视列表中,提示没有找到变量的符号。

然后我重新建立一个简单工程,把以上代码加入工程中;发现可以进行单步调试与观察变量;

我对此表示无语;

最后我在原工程中继续添加以下代码:

CString str;

str.format(_("x=%d,y=%d,m=%d"),drop.x,drop.y,m);

MessageBox(str);

这时我再编译调试,发现程序直接停到CString str这条语句,然后我单步调试,发现新增加的语句能调试与添加到监视器中正常观察。但是之前的变量还是无法观察;

观察到的str="x=2,y=3,m=9";可以看到drop.x,drop.y 以及m的值都存在,就是不能观察。

这个问题导致的原因是什么???还不知道!

posted on 2015-07-26 15:46  卡贝天师  阅读(2022)  评论(0编辑  收藏  举报