主题:[讨论]VC++6.0分步执行遇到的问题!有人能解决吗?
写的比较麻烦,希望大家可以看下去!帮助所有遇到过此类问题的朋友们!
谢谢大家!
首先,我用的是笔记本来安装的VC++程序!但是由于是新买的机器所以是Vista系统。而Vista系统是不兼容VC++的,连读盘都读不了。我就听取了别人的意见将系统重装成了XP的。然后再次安装C程序!
出现了一标题为:Windows NT Debug Symbols的提示栏!
里面的内容为:安装程序VC++6.0 Tools程序组中以安装了一个图标,使用此图标可以从您的VC++ CD-ROM中安装 NT 系统符号(.DBG)文件的子集。如果没有安装该符号文件,VC++调试器将不能保证总检测到被调用函数的上下文。
我点击的确定!
然后又出现了标题为:VB 6 API Declaration Loader的错误提示!
内容是:The language DLL'vb6chs.dll'could not be found
我点击了确定!好了这样我的程序安装完了!写个程序执行下吧!
写了一个做试验:
#include<stdio.h>
void main()
{
int x,y,sum=0;
printf("请输入第一个数:");
scanf("%d",&x);
printf("请输入第二个数:");
scanf("%d",&y);
sum=x+y;
printf("%d加%d的和是%d\n",x,y,sum);
}
F7下0个错误0个警告!Ctrl+F5执行下同样没问题!
分步调试F11
出现标题为:Find Source的提示!
内容:Please enter the path for PRINTF.C
然后我根据提示在百度中收索下解决方案!说是在VC98文件夹下缺少一个名为CRT\SCR的文件夹!
于是我从安装盘中找到了该文件并粘贴到了VC98文件夹下!
再一次执行下程序吧!当F11执行到printf语句时程序没有正常执行下一步!而是跳到了printf这个函数的实际代码文件中去!就这样我就不断的F11!最后又出现了一个提示!
标题:Find Source
内容:Please enter the path for MEMSET.ASM.
无奈只好终止调试!然后我又用F10进行分步执行!结果正常执行了!最后函数结束的时候本来应该在执行窗口出现press any key to continue!的提示的!然后程序执行结束!
但是我的程序却不是正常结束,而是跳到了一个CORC.C文件中的“ mainret = main(__argc, __argv, _environ);”语句所在的位置!然后又是不断F10结果程序有回到了开始执行分步调试的状态!
之后我又写了一个 名为function.c的程序做为被调函数!在写了一个主调函数!
#include<stdio.h>
#include"function.c"
#define N 3
void main()
{ int a[N],max,min,sum;
float aver;
Input(a,N);
min=MIN(a,N);
max=MAX(a,N);
sum=Sum(a,N);
aver=(float)(sum-max-min)/(N-2);
printf("平均数=%f\n",aver);
}
按F10执行程序是不进入被调函数之中的!所以也看不见程序在被调函数中的执行过程!所以为了可以看到在被调函数中的执行过程我只能用F11而当F11执行到printf scanf 这样的系统提供的函数时!总会跳到一些我不知所谓的文件中去!
家里电脑安装同样的安装盘就不会有这样的问题!当F11执行时程序只会跳入我们自己定义的函数中去,而不会跳入printf这些程序提供的函数中去!
我只是一个C语言的初学者!对于这些问题自己无能为力!希望这方面的专家可以帮帮我!我知道自己写的很繁琐!但是我想我遇到的问题,别人同样也可能遇到!我在发现这些问题时,我在百度中一个个找找到一个解决一个最后还没有找到彻底的解决方案!这样无疑是很麻烦的!也使很多我这样的C初学者知难而退了!写的繁琐点也是希望这个问题可以彻底解决,让想学好C的同学们可以少一些困难,而不是面对这样的问题放弃了对C的学习!
所以恳请各位帮帮忙!将解决方案写的完整具体些,也方便以后的同学!希望大家不惜自己的宝贵时间将这个问题帮助我们这些后续的C的学习者彻底解决!将这个问题帮助我们这些后续的C的学习者彻底解决!没有别的可以回报!只能替所有遇到此类问题的朋友向大家说句谢谢!
谢谢大家!
首先,我用的是笔记本来安装的VC++程序!但是由于是新买的机器所以是Vista系统。而Vista系统是不兼容VC++的,连读盘都读不了。我就听取了别人的意见将系统重装成了XP的。然后再次安装C程序!
出现了一标题为:Windows NT Debug Symbols的提示栏!
里面的内容为:安装程序VC++6.0 Tools程序组中以安装了一个图标,使用此图标可以从您的VC++ CD-ROM中安装 NT 系统符号(.DBG)文件的子集。如果没有安装该符号文件,VC++调试器将不能保证总检测到被调用函数的上下文。
我点击的确定!
然后又出现了标题为:VB 6 API Declaration Loader的错误提示!
内容是:The language DLL'vb6chs.dll'could not be found
我点击了确定!好了这样我的程序安装完了!写个程序执行下吧!
写了一个做试验:
#include<stdio.h>
void main()
{
int x,y,sum=0;
printf("请输入第一个数:");
scanf("%d",&x);
printf("请输入第二个数:");
scanf("%d",&y);
sum=x+y;
printf("%d加%d的和是%d\n",x,y,sum);
}
F7下0个错误0个警告!Ctrl+F5执行下同样没问题!
分步调试F11
出现标题为:Find Source的提示!
内容:Please enter the path for PRINTF.C
然后我根据提示在百度中收索下解决方案!说是在VC98文件夹下缺少一个名为CRT\SCR的文件夹!
于是我从安装盘中找到了该文件并粘贴到了VC98文件夹下!
再一次执行下程序吧!当F11执行到printf语句时程序没有正常执行下一步!而是跳到了printf这个函数的实际代码文件中去!就这样我就不断的F11!最后又出现了一个提示!
标题:Find Source
内容:Please enter the path for MEMSET.ASM.
无奈只好终止调试!然后我又用F10进行分步执行!结果正常执行了!最后函数结束的时候本来应该在执行窗口出现press any key to continue!的提示的!然后程序执行结束!
但是我的程序却不是正常结束,而是跳到了一个CORC.C文件中的“ mainret = main(__argc, __argv, _environ);”语句所在的位置!然后又是不断F10结果程序有回到了开始执行分步调试的状态!
之后我又写了一个 名为function.c的程序做为被调函数!在写了一个主调函数!
#include<stdio.h>
#include"function.c"
#define N 3
void main()
{ int a[N],max,min,sum;
float aver;
Input(a,N);
min=MIN(a,N);
max=MAX(a,N);
sum=Sum(a,N);
aver=(float)(sum-max-min)/(N-2);
printf("平均数=%f\n",aver);
}
按F10执行程序是不进入被调函数之中的!所以也看不见程序在被调函数中的执行过程!所以为了可以看到在被调函数中的执行过程我只能用F11而当F11执行到printf scanf 这样的系统提供的函数时!总会跳到一些我不知所谓的文件中去!
家里电脑安装同样的安装盘就不会有这样的问题!当F11执行时程序只会跳入我们自己定义的函数中去,而不会跳入printf这些程序提供的函数中去!
我只是一个C语言的初学者!对于这些问题自己无能为力!希望这方面的专家可以帮帮我!我知道自己写的很繁琐!但是我想我遇到的问题,别人同样也可能遇到!我在发现这些问题时,我在百度中一个个找找到一个解决一个最后还没有找到彻底的解决方案!这样无疑是很麻烦的!也使很多我这样的C初学者知难而退了!写的繁琐点也是希望这个问题可以彻底解决,让想学好C的同学们可以少一些困难,而不是面对这样的问题放弃了对C的学习!
所以恳请各位帮帮忙!将解决方案写的完整具体些,也方便以后的同学!希望大家不惜自己的宝贵时间将这个问题帮助我们这些后续的C的学习者彻底解决!将这个问题帮助我们这些后续的C的学习者彻底解决!没有别的可以回报!只能替所有遇到此类问题的朋友向大家说句谢谢!