Resistor 发表于 2022-7-29 11:11:58

关于生成的Debug程序打开后马上闪退

“Printf.exe”(Win32):已加载“E:\VS2013\project\Printf\Second\Debug\Printf.exe”。已加载符号。
“Printf.exe”(Win32):已加载“C:\Windows\SysWOW64\ntdll.dll”。无法查找或打开 PDB 文件。
“Printf.exe”(Win32):已加载“C:\Windows\SysWOW64\kernel32.dll”。无法查找或打开 PDB 文件。
“Printf.exe”(Win32):已加载“C:\Windows\SysWOW64\KernelBase.dll”。无法查找或打开 PDB 文件。
“Printf.exe”(Win32):已加载“C:\Windows\SysWOW64\msvcr120d.dll”。无法查找或打开 PDB 文件。
线程 0x534c 已退出,返回值为 0 (0x0)。
线程 0x4ea0 已退出,返回值为 0 (0x0)。
程序“ Printf.exe”已退出,返回值为 0 (0x0)。


报了这些代码

jackz007 发表于 2022-7-29 11:17:47

本帖最后由 jackz007 于 2022-7-29 11:19 编辑

         你在 main() 函数的最后添加两个语句:
      fflush(stdin) ;
      getchar()   ;
         然后重新编译、运行试试看

Resistor 发表于 2022-7-29 11:47:37

jackz007 发表于 2022-7-29 11:17
你在 main() 函数的最后添加两个语句:

         然后重新编译、运行试试看

        [外部代码]       
        [下面的框架可能不正确和/或缺失,没有为 kernel32.dll 加载符号]       

Resistor 发表于 2022-7-29 11:48:45

jackz007 发表于 2022-7-29 11:17
你在 main() 函数的最后添加两个语句:

         然后重新编译、运行试试看

但是可以打开了,但是我想把这个问题根治了

jackz007 发表于 2022-7-29 12:07:43

Resistor 发表于 2022-7-29 11:48
但是可以打开了,但是我想把这个问题根治了

       根治,你想怎么治?因为你写的代码叫 Windows Console 程序,也就是控制台程序,需要依托 CMD 窗口来和用户交互,可是,通过运行程序产生的 CMD 窗口在程序结束后还有理由继续存在吗?所以,你看到了黑色窗口一闪就没了。
       如果想根治,唯一出路就是开发带 Windows 图形界面的 GUI 程序。

Resistor 发表于 2022-7-29 14:35:56

jackz007 发表于 2022-7-29 12:07
根治,你想怎么治?因为你写的代码叫 Windows Console 程序,也就是控制台程序,需要依托 CMD 窗 ...

好的好的,谢谢,这两天才开始学,所以就太想的理所当然了

ExiaGN001 发表于 2022-7-30 07:26:23

生成出的程序立刻闪退不是bug,而是console程序运行的标准逻辑
有2种解决办法:
1.
开头追加
#include<windows.h>
在main函数中return 0;前
追加
system("pause");

2.在main函数中return 0;前
追加 getchar();
页: [1]
查看完整版本: 关于生成的Debug程序打开后马上闪退