在VS2010/MFC中,很明显MessageBox()的用法和VC6.0中是一样的。
今天使用MessageBox()函数时,使用VC6.0的方法好像不行,
经过各种尝试,找到了一种比较简单的变量显示方式,分享给大家。
//VS/MFC中MessageBox的用法//(1),弹出编号CString msg; msg.Format(_T("页数:%d\n"), nPageCount);消息框(msg); //(2)、弹出字符串CString str; str.SetString(_T("asdfasdf"));消息框(str);
Format 函数不能直接用来转换字符串然后在 VS2010 中显示,
项目中默认字符集是UNICODE,使用_T转换
char a[128] = "这是一个字符串";
str.Format(_T("%s"),a);
不会提示错误,但字符串不会转换为UNICODE或ASCII
显示会异常。
问题描述:我们平时使用vs2010调试程序时,有时想将一些变量或者信息打印到输出窗口中,以便观察程序的运行结果。我们还可以很容易地知道程序运行的参数是否正确。当然,我们也可以写文件。方法,但是写文件太麻烦。这里有两种将调试信息打印到输出窗口的方法。
方法一:编写一个可变参数函数,将想要打印到输出窗口的信息传递给函数,在函数内部调用系统函数OutputDebugString(),将调试信息打印到输出窗口。
void OutputDebugPrintf(const char* strOutputString,...)
{
char strBuffer[4096] = {0};
va_list vlArgs;
va_start(vlArgs, strOutputString);
_vsnprintf_s(strBuffer, sizeof(strBuffer) - 1, strOutputString, vlArgs);
va_end(vlArgs);
输出调试字符串(CA2W(strBuffer));
}
方法二:调用系统自带的库函数TRACE()。这个函数其实和printf()类似,只不过printf()将信息输出到控制台窗口,而TRACE()函数则输出到vs2010的输出窗口,以方便程序员调试。
TRACE("%s", "没有错误,没有警告");
TRACE(“%d”, 1024);
TRACE(“%d”, 520.1314);
TRACE("%c", 'U');
参考:
http://www.sychzs.cn/weolar/article/details/48022921
VisualGDB属性--》Makefile设置-->CFLAGS:添加:-gdwarf-2