vc6.0调试问题。
疑问:(悖论如下)
1.有错不能生成exe文件。
2.不生成exe文件就不能用断点和单步运行功能。
3.所以有错了,不能用断点和单步来找错。示例:建立一project叫test1,在dialog中加一按钮Button1;
     代码如下 :
(1)void CTest1Dlg::OnButton1() 
      {
(2) 3MessageBox("2dklsdkld");
      }(2)中前面的3是故意加的error.同时在此行设断点,结果按F5后并不在断点处停下,而且按F10也不管用,只是提示exe 文件不存在,问要不要build 它,可build 完后只在下面的build 视图里说明test1.exe - 2 error(s), 0 warning(s)而并不建立exe文件。
  
如果把(2)中的'3'去掉,则断点与单步运行都可用了,但同样先要生成exe文件。
请问这是哪错了???????

解决方案 »

  1.   

    这不是什么悖论
    有错不能生成exe, 是指语法错误, 这种错误一般很容易找到, 所以不必要断点调试语法错误还能生成exe文件, 还真没见过这种编译程序
      

  2.   

    一个是语法错误,一个是BUG,2码事。就相当于,东西还没造好和东西的某个功能不对,需要修理。
      

  3.   

    关键不在于有错能否生成exe,而是不生成exe 就不能调试!
    1.有错不能生成exe文件。这是正确的,
    2.不生成exe文件就不能用断点和单步运行功能,这已经是不能让人容忍了
    3.所以有错了,不能用断点和单步来找错。这种显而易见的错误,不是编译器错了就是我的操作或理解有误,我是一初学者,怕是自己哪没搞懂才晒出来让大家指正的! 
      

  4.   

    在这句话test1.exe - 2 error(s), 0 warning(s)前就会有错误类型、位置的描述。
    这个是语法错误,有语法错误是不能生成exe的,更不用说调试了。