簡體   English   中英

從Windows gui程序輸出到命令行

[英]output to command line from windows gui program

我有一個基於GDI的Win32 GUI exe-

該程序在啟動時會接受命令行參數,如果命令行不正確,我需要一種打印消息的方法。

目前,我正在使用MessageBox顯示一條錯誤消息,並且想知道如果用戶從dos命令行啟動該程序,則如何打印此錯誤消息。 -

:)

好的,這符合我的要求,但是需要我按enter鍵,否則我看不到顯示的當前路徑。

         void RedirectIOToConsole()
         {
         int hConHandle;
         FILE *fp;
         AttachConsole(-1);
         hConHandle=_open_osfhandle(GetStdHandle(STD_OUTPUT_HANDLE),_O_TEXT);
         fp=_fdopen(hConHandle,"w");
         fprintf(fp,"\ntesting\n");
         fflush(fp);
         _close(hConHandle);
         FreeConsole();
         }

大多數需要完成此操作的應用程序將創建其應用程序的* .com版本(位於.exe旁邊)。 所有快捷方式都將指向.exe,但是如果用戶碰巧在命令行上鍵入名稱,則.com版本將最終執行(因為CMD會在.exe文件之前搜索.com文件)。通常是一個薄包裝程序,它將調用.exe並等待其完成或使用共享的.dll文件,但是它純粹是存在的,因此可以將輸出漏斗到適當的控制台窗口,直到應用程序“釋放”為止飾面。

例如,Microsoft的Visual Studio使用以下方法:

C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE>dir devenv.*
 Volume in drive C has no label.
 Volume Serial Number is A482-59BA

 Directory of C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE

07/26/2012  05:05 PM             7,680 devenv.com
07/26/2012  07:08 PM           406,976 devenv.exe

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM