主题:[原创]求助vc6.0单步调试中的一点问题
waver001
[专家分:0] 发布于 2007-12-30 14:25:00
在vc6.0中,设置断点单步跟踪调试程序,在跟踪到的函数中定义有Cstring类的对象str,明明已经执行过该行了,但是在watch栏中却显示symbol'str'not found
不知道那位朋友遇到过这种情况没,应该怎样解决呀,是编译器没有配置好吗?
谢谢了
回复列表 (共8个回复)
沙发
华山论剑 [专家分:5310] 发布于 2007-12-31 12:32:00
VC6.0编译器功能有限,很多东西(很多情况像是类、通过include放在头文件中的变量声明等)在Watch里看不到,可以自己加几个临时局部变量监测。
板凳
waver001 [专家分:0] 发布于 2007-12-31 14:26:00
谢谢这位朋友,元旦快乐。初学vc6.0 还得多多请教!
但是同样的程序我在同学的机子上单步执行,在watch栏中却可以看到CString类的对象str,不知为何。
3 楼
liyu355 [专家分:980] 发布于 2007-12-31 17:05:00
请
使用:
build->build all
然后在调试
如果你是使用多个工程来进行编程的话
那么这是至关重要的.
4 楼
华山论剑 [专家分:5310] 发布于 2008-01-02 10:47:00
[quote]
但是同样的程序我在同学的机子上单步执行,在watch栏中却可以看到CString类的对象str,不知为何。[/quote]
不如把你的程序放上来再看看?
5 楼
waver001 [专家分:0] 发布于 2008-01-02 11:52:00
谢谢大家 我在试试
6 楼
waver001 [专家分:0] 发布于 2008-01-02 12:13:00
单步跟踪一下代码
void CStereocodeDoc::OnFileOpen()
{
// TOD Add your command handler code here
CString szInitialDir="E:\\立体图象数据\\*.BMP";//设定一个初始路径
static
char szFilter[] = "BMP Files(*.bmp)|*.bmp|PGM Files(*.pgm)|*.pgm|All File(*.*)|*.*||";//打开对话框中只能选择bmp和all file 文件
// CFileDialog FileDlg( TRUE, NULL,szInitialDir,OFN_HIDEREADONLY, szFilter );//出现对话框
CFileDialog dlg(TRUE, NULL,szInitialDir,OFN_HIDEREADONLY, szFilter);
CString str=".",str1="..";
LPCTSTR fn;
if(dlg.DoModal()!=IDOK)
{
return;
}
CFile file;
file.Open(dlg.GetPathName(),CFile::modeRead);
str=file.GetFilePath();
str1=str.Right(4);
if(str1== ".bmp" || str1==".BMP") ImageType=0; //判断图像类型
else if(str1==".pgm" || str1==".PGM") ImageType=1;// [color=FF0000]已经执行到了这一行[/color]
watch栏中显示 symbol 'str ' not found;
另外我也重装了vc6.0了,还是老样子,在同学机子上调就没这个问题
7 楼
华山论剑 [专家分:5310] 发布于 2008-01-02 14:09:00
我试过可以,如此的话,你可以再试试,删除之前的watch,在单步到这个函数中时,再用鼠标选定str拖放到watch中,因为有可能你是在其它函数过程中添加的str。
换句话说,如果在不同的函数A、B中有同名变量str,为A添加的str只有单步到A时才能看见,为B添加的只能单步到B时才能看见。
8 楼
waver001 [专家分:0] 发布于 2008-01-03 10:35:00
问题解决了 谢谢大家的帮助。
要学好vc真不容易啊,以后还得多多请教[em2]
我来回复