如何从命令行运行可执行文件时启用系统错误消息

时间:2018-01-02 22:26:18

标签: c++ windows dll

根据Microsoft,"如果[系统]无法找到DLL,系统将终止该进程并显示一个报告错误的对话框。 "这是我在命令行之外运行应用程序时得到的结果,但是当我从shell环境(如命令提示符或PowerShell)运行应用程序时,我没有遇到相同的系统错误。

当从命令行界面运行应用程序时,有没有办法显示相同的错误消息?

https://msdn.microsoft.com/en-us/library/aa271571(v=vs.60).aspx

2 个答案:

答案 0 :(得分:0)

投入30分钟的时间,你可以写一个像这样的小型C ++控制台程序:

  1. 致电CreateProcess()以启动实际的EXE。
  2. 如果CreateProcess返回FALSE,请致电GetLastError()以获取错误代码。
  3. 致电FormatMessage()turn the error code into the system error message

答案 1 :(得分:0)

SetErrorMode(GetErrorMode() & ~SEM_FAILCRITICALERRORS);

但我认为您不想这样做,因为您不知道用户将在哪种环境中运行您的应用程序。 现在弹出一个对话框通常是一个好主意,例如一个服务环境。 检查任何失败的错误代码有什么问题,例如LoadLibrary() 并对这个错误做出反应?