1.原来的问题是:为什么程序不能按F5调试了,"User breakpoint called from code at 0x77f9eea9",可是我没有设断点啊?
2.确实在调试前把所有的断点都清除了
3.原来的回答:程序ASSERT()验证时出错了,
   那个break point是assert的一条指令:int 3
  运行程序,它自己会停在一条int 3处。然后查看调用堆栈,你会看到最里面几层应该是ASSERT的代码,在Assert的上一层,正常情况你会看到你自己的一个函数调用,这里就是你的程序出错的地方了,看看为什么错。4.我的问题是:根据上面的方法,我查到的原因是在MFC的winfrm.cpp中
HICON hIcon = ::LoadIcon(hInst, MAKEINTRESOURCE(nIDResource)
这是堆栈调用的最后一个函数了。但是这个函数是API,也没有什么ASSERT语句。
这是怎么回事????
附:这个函数是由InitInstance中的ProcessShellCommand调用的。由于使用了文档/视图结构,是否是在ProcessShellCommand之前就有错误存在,还是另外的原因??to fffff(烦),cxiaobao(风子): 如果你们看到了这个问题,麻烦帮我解答一下,谢谢了。

解决方案 »

  1.   

    没有设置断点!你可以删掉 *.dwl  *.ncb 等文件,再打开编译!试试我以前这样就解决了!
      

  2.   

    我来告诉你吧,你的icon资源里面有高于256色的图标,找到它,换成256色的图标就好了,千万别用那些16兆色,32兆色的图标
      

  3.   

    Use CTRL+B,把其它的断点清除,断点远远不止在程序里的一个F9,比如说变量的值等于一值
      

  4.   

    一般来说都是开发库中的int 3中断,中断后,看看堆栈中的函数。
      

  5.   

    谢谢大家了,可使用这些方法还是不行呀.............
    to clane:堆栈中的函数,最后调用的是::LoadIcon,但是由MFC调用的.....
      

  6.   

    我不是跟你说了吗!!!怎么不信我!你的icon资源里面有高于256色的图标,找到它,换成256色的图标就好了,千万别用那些16兆色,32兆色的图标
      

  7.   

    是图标的颜色问题,在::LoadIcon(hInst, MAKEINTRESOURCE(nIDResource)
    调用时返回空