我嘗試這樣的代碼輸出到控制檯:輸出從一個Win32 GUI應用程序控制臺在Windows 10
#include <Windows.h>
#include <stdio.h>
#include <io.h>
#include <fcntl.h>
int APIENTRY WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow)
{
AllocConsole();
HANDLE handle_out = GetStdHandle(STD_OUTPUT_HANDLE);
int hCrt = _open_osfhandle((long) handle_out, _O_TEXT);
FILE* hf_out = _fdopen(hCrt, "w");
setvbuf(hf_out, NULL, _IONBF, 1);
*stdout = *hf_out;
HANDLE handle_in = GetStdHandle(STD_INPUT_HANDLE);
hCrt = _open_osfhandle((long) handle_in, _O_TEXT);
FILE* hf_in = _fdopen(hCrt, "r");
setvbuf(hf_in, NULL, _IONBF, 128);
*stdin = *hf_in;
printf("Hello!");
}
控制檯打開,但沒有什麼是輸出到它。該代碼有什麼問題?
我嘗試了所有這些建議:
https://justcheckingonall.wordpress.com/2008/08/29/console-window-win32-app/
http://dslweb.nwnexus.com/~ast/dload/guicon.htm
How do I print to the debug output window in a Win32 app?
,但我無法得到任何輸出中緊跟在Windows 10 AllocConsole()創建控制檯。 注:我其實並沒有創建任何真正的Window。 在Window 10中發生了什麼變化,導致上述解決方案無法正常工作,或者是否有可能丟失的東西(編譯器標誌或其他東西)?
您認爲如何?
請不要在非現場鏈接提問您的問題。請顯示您嘗試的代碼。你會發生什麼,發生了什麼。就目前而言,這個問題不在話下。 –
當我這樣做,我會得到50個答案已經答覆已經[重複]。 – Zingam
所以我確實添加了一些我試過的代碼。 – Zingam