C++调试

1 ASSERT

Debug下用,检测错误

assert(fin != NULL && fout != NULL);
断言,在debug模式下,当fin或者fout其中一个为空时,程序就会被断下,弹出一个断言窗口,表示这两个变量中的一个或则两个为空,程序有异常

2 Log

OK,还是log好用些


3 Debug

慢,卡机,偶尔用

4 MessageBox

不需要Debug,偶尔用


win32中使用,需要引入<windows.h>
例1 字符串
MessageBox(NULL,TEXT("HELLO!"),TEXT("标题"),MB_OK);
例2 字符串,数字混合
	UINT a =99;
	TCHAR szBuffer[1024];
	LPCTSTR str = TEXT("适配器的显示模式的个数: %i");
	wsprintf(szBuffer, str, a);
	MessageBox(NULL, szBuffer, TEXT("适配器"), MB_OK);
例3 字符串,多个数字混合
	UINT a =99;
	UINT b =77; 
	TCHAR szBuffer[1024];
	LPCTSTR str = TEXT("适配器的显示模式的个数: %i %i");
	wsprintf(szBuffer, str, a,b);
	MessageBox(NULL, szBuffer, TEXT("适配器"), MB_OK);

5 OutDebugString

需要在Debug下运行,不好用,下面代码暂时无法运行


win32的api,需要引入<windows.h>
使用方法
#include <stdio.h>
#include <stdarg.h>
#include <ctype.h>
void __cdecl odprintf(const char *format, ...)
{
char buf[4096], *p = buf;
va_list args;
va_start(args, format);
p += _vsnprintf(p, sizeof buf - 1, format, args);
va_end(args);
while ( p > buf  &&  isspace(p[-1]) )
*--p = '/0';
*p++ = '/r';
*p++ = '/n';
*p   = '/0';
OutputDebugString(buf);
}
调用
odprintf("Cannot open file %s [err=%ld]", fname, GetLastError());



6 录像

原文地址:https://www.cnblogs.com/nafio/p/9137704.html