今天发现了个奇怪的问题:用的VC6
编译好后 ,我直接执行,发现程序没有任何反应,因为程序执行后,弹出对话框但是单步调试 能弹出对话框背景:基于DIALOG的程序

解决方案 »

  1.   

    那就运行时打印Log等,还有直接运行是以exe为当前目录,调试是工程文件为当前目录,两者不一样,是不是你一些配置文件路径不对.
      

  2.   

    应该是你的程序连接了其他动态库DLL或者需读取配置
    因为调试运行的时候,当前路径是你的代码路径;而直接运行的时候是在Debug文件夹将相关文件和你的Exe文件放在一起就可以了
      

  3.   

    你在调用弹出对话框的那句命令前面弹出个msd消息框,然后在那句命令之后再弹出个msg消息框,看看是否调用了这句命令!
      

  4.   

    to  oyljerry:   先谢谢    我在debug下指定的目录为debug\my.exe(之前这个加上了全路径 但也不行)
       在link选项 指定的目录也为 Debug\MyCard.exe   
      

  5.   

    to TandyT:  整个程序是对话框程序 ,对话框初始化后 会创建一个线程   这个线程会循环的读文件 ,我在这个线程里添加了msgbox  发现直接执行   msgbox有时弹得出来 有时不能  单步进入调试 那就没问题  主界面的对话框 也能正常显示出来
      

  6.   

    先把exe放到工程目录下试试直接执行
      

  7.   

    我编译后  直接在debug目录下或release目录下 直接执行exe文件 也不行
      

  8.   

    感觉 debug和release目录下生成的exe  就不是单步调试的exe完全不是一个exe文件
      

  9.   

    不知道你怎么写的程序。对话框是无条件表示的吗?如果你单步调试出对话框,而生成的exe文件不显示对话框的话,
    有可能是时间的问题。你单步调试的时候,正好等了一段时间你的主程序和线程的生存期是咋定的?
      

  10.   

    然后 我在这个线程里加了一个afxmsgbox 就能正常注释掉 就又不行了 感觉很奇怪
      

  11.   

    在代码中 加了一个 sleep  OK了
      

  12.   

    子线程还没执行messagebox,主线程就退出了,进程就退出了。