在编写桌面程序的时候打印调试信息通常习惯是用自己封装好的函数利用OutPutDebugString函数输出然后借助DbgView查看,但是有时候系统其它程序也用OutPutDebugString在输出一些信息的时候,这样的话DbgView窗口上的信息就显得很杂乱,干扰了分析工作.虽然我们可以借助其它方法比如输出到文件等等,但是还是觉得太麻烦。所以在此介绍一种用printf直接输出调试信息到console窗口的方法.
1.先包含下面俩个头文件.
#include <io.h>
#include <fcntl.h>
2.增加下面方法
void CDbgTestApp::InitConsoleWindow(void)
{
int hCrt;
FILE *hf;
AllocConsole();
hCrt=_open_osfhandle(
(long)GetStdHandle(STD_OUTPUT_HANDLE),
_O_TEXT );
hf=_fdopen( hCrt, "w" );
*stdout=*hf;
setvbuf( stdout, NULL, _IONBF, 0 );
// test code
printf("InitConsoleWindow OK!/n");
}
//在函数InitInstance()中的所有代码前面调用该函数:
InitConsoleWindow();
//后面你就可以使用printf输出运行信息了。
分享到:
相关推荐
### MFC中利用控制台输出调试信息 在开发大型软件项目时,特别是在使用Microsoft Foundation Classes (MFC)框架的情况下,调试复杂的应用程序是一项极具挑战性的任务。尤其对于那些运行时间较长的程序而言,了解...
这个标题所指的示例程序是关于如何在MFC对话框应用程序中调用控制台并使用`cout`和`printf`函数输出信息的。这种做法通常用于调试或在应用程序中集成简单的命令行功能。 首先,让我们深入理解MFC对话框应用程序。在...
因此,我们需要手动添加console窗口来输出调试信息。 要在一个没有默认console的Win32程序中创建console,可以调用`AllocConsole`函数。这个函数会为当前进程分配一个新的console窗口。以下是一个简单的示例: ```...
4. **输出调试信息**:正如前面所述,通过`printf`或`cout`输出关键变量和状态信息,以理解程序的行为。 5. **日志文件**:除了控制台输出,还可以将调试信息写入日志文件,便于后期分析。 现在,关于`console...
在`main()`函数中,初始化HAL库和串口后,可以使用`HAL_Printf()`替代标准的`printf()`函数,实现通过串口输出调试信息。 例如: ```c int main(void) { HAL_Init(); SystemClock_Config(); MX_GPIO_Init(); ...
- 当程序执行到`debugFromC()`时,可以查看控制台(Console)输出`printf`的调试信息,或者在Android Studio的Logcat窗口看到`__android_log_print`的日志。 通过以上步骤,你可以在Eclipse中调试JNI的C代码,并...
在调试输出控制台中,我们常常使用`printf`或`cout`(C++)或`Console.WriteLine`(C#)来输出信息。例如,如果你在C#代码中写入`Console.WriteLine("Hello, Debug!");`,在运行调试时,这段文本会出现在控制台窗口...
这一技术在4300系列微控制器的开发中非常有用,因为它允许开发者在没有物理串口或外部调试设备的情况下,将调试信息直接打印到IDE的控制台上。 首先,我们来看一下“Semi-hosting”这个概念。Semi-hosting是一种...
然而,有时开发者可能希望将这些调试信息直接输出到一个控制台窗口,以便于实时查看和分析。本文将详细解释如何在MFC应用程序中实现这一功能。 首先,我们需要理解MFC应用程序的基本结构。MFC是微软提供的一套C++库...
- 现在你可以通过`cout`或`printf`等输出函数在控制台中显示信息,如`cout , Console!" ;`。 - 编译并运行你的程序,你应该能看到一个新的控制台窗口出现,并且可以在其中看到你的程序输出。 注意,这种方式适用...
现在你可以像普通控制台程序一样使用`printf`或`cout`等输出函数,它们会将信息显示在对话框程序的控制台窗口中。 4. **注意问题**: - 添加控制台可能会影响对话框的启动和关闭行为,因此需要确保正确处理。 - ...
在VC中,编译、连接的信息会显示在“输出”窗口中。如果遇到问题,可以根据提示修改代码。 #### 五、调试程序 **设置与取消断点** - 断点是在程序执行过程中暂停程序执行的位置。在VC中,可以通过以下方式设置或...
`console.cpp`可能包含了初始化和关闭控制台窗口的代码,以及用于输入输出的函数,如`printf`或`cin`,以便在控制台上显示调试信息。 `Specification.doc`文件可能是一个详细的技术规格文档,解释了如何在MFC项目中...
3. **Console Output**:简单地将跟踪信息输出到控制台窗口,如`printf`或C++的`std::cout`,或者使用Windows API的`OutputDebugString`函数,该函数将信息发送到调试器,即使程序在没有附加调试器的情况下运行,也...
在Console模式下,我们通常会使用iostream库进行输入输出操作,以及使用标准的控制台函数如printf或scanf进行用户交互。 这个项目中的"Socket_TCP_Console"可能包含了服务器和客户端的源代码文件,例如server.cpp和...
10. **调试与日志**:在控制台程序中,我们可以直接使用printf或std::cout进行调试输出。但在MFC中,可能需要利用MFC的日志类或自定义日志系统。 压缩包内的"www.pudn.com.txt"可能是介绍或教程的链接,而"samples...
2. 在编译结果窗口中,可以查看编译的详细信息,例如错误列表、警告列表等。 通过以上步骤,可以使用 Visual C++ 6.0 编写、调试和运行 C 语言程序。Visual C++ 6.0 提供了一个功能齐全的平台,用于开发、调试和...
对话框工程是Windows应用程序的一种类型,它不包含主窗口,而是直接使用对话框作为用户界面。在本项目中,我们将利用对话框工程作为Hook逻辑的载体。 创建Hook的过程通常包括以下步骤: 1. 创建DLL动态链接库:Hook...
在Visual Studio 2005 (VS2005)中编写、运行...总的来说,VS2005为C语言开发提供了全面的支持,从编写代码到调试,都能提供高效且直观的工作流程。通过熟悉这些步骤和工具,你可以在VS2005环境下高效地进行C语言开发。