在Win32程序中运行Console来进行监视
AllocConsole();
freopen("CONOUT$", "w", stdout);
printf("hello, world./n");
这里AllocConsole()打开Console,而freopen应该是把标准输出和Console关联吧?"CONOUT$"这个很关键,
freopen可以换成freopen_s,改成这样
AllocConsole();
FILE *stream;
freopen_s(&stream, "CONOUT$", "w", stdout);
今天逛blog的收获,觉得这个小技巧对调试程序很有帮助,虽然具体实现原理不太懂,暂且先在这里做个备份,以后再看。
msdn上的相关资料
http://msdn2.microsoft.com/zh-cn/library/wk2h68td(VS.80).aspx
http://msdn2.microsoft.com/zh-cn/library/88k7d7a7(VS.80).aspx
在C#.net中打开Console就更方便了,只需要用AllocConsole打开Console窗口,然后就可以像在控制台应用程序里那么用了,在WinForm和Web里都可以这么用,方便调试查看。
[System.Security.SuppressUnmanagedCodeSecurity]
[DllImport("kernel32", CharSet = CharSet.Auto)]
static extern bool AllocConsole();
AllocConsole();
Console.WriteLine("hello world./n");