像cocos2dX一样往VS控制台输出log

学习使用cocos2dx的时候少不了的就是在各个时间环节出打Log了,游戏人物和场景进行到哪一步,坐标是怎么遍历的都可以通过Log输出到控制台,不仅是对于游戏编程,对于非黑窗口,或者不想往黑窗口中print调试语句的时候,往VS的控制台输出调试的语句跟踪程序运行是非常舒服的办法。

具体做法比较麻烦,但是可以简单封装一下,

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
当你编写非控制台程序时,比如GUI程序,像std::coutprintf()这样的函数,就无法使用了,(不是使用了,程序就编译不了,是可以通过编译的,只是你不会看到这些函数打印出的信息。)
Visual Studio给我们提供了一个“控制台” — 输出窗口。我们要使用什么函数才能将调试信息打印到输出窗口里面呢? 看看下面的方法吧。
#include "atlbase.h"
#include "atlstr.h"
void OutputDebugPrintf(const char* strOutputString, ...)
{
char strBuffer[4096] = { 0 };
va_list vlArgs;
va_start(vlArgs, strOutputString);
_vsnprintf_s(strBuffer, sizeof(strBuffer) - 1, strOutputString, vlArgs);
//vsprintf(strBuffer,strOutputString,vlArgs);
va_end(vlArgs);
OutputDebugString(CA2W(strBuffer));
}
int main() {
int i = 10;
OutputDebugPrintf("I'm %d years old.\n", i);
while (1) {}
return 0;
}
程序解释
#include "atlbase.h"
#include "atlstr.h"
这两个头文件是给这个CA2W()宏函数准备的。这个宏函数的功能是:将ANSI character string转化为Unicode character string的函数。
参考链接:http://www.voidcn.com/article/p-ecsfuzgu-wn.html
坚持原创技术分享,您的支持将鼓励我继续创作!