[英]Getting a Dev-C++ built program to output UNICODE characters to the Windows command line
[英]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.