I have a problem that appears and disappears for mysterious reasons. A while back when I started the project I’ve found a fairly handy function that allows debug window output in VS2010. It worked great for a while.
Now it displays errors inconsistently. That means that sometimes the code will compile, sometimes it does not, and I can’t find out why with code below causing the error. It seems almost random. Press compile, error, press compile again without changing anything sometimes error sometimes fine.
This is what it looks like with the error:
http://clip2net.com/clip/m0/1332710747-clip-29kb.png
and without:
http://clip2net.com/clip/m0/1332737362-clip-40kb.png
The culprit is OutputDebugString(buf);
Error doesn’t occur with that line commented out.
I am looking to solve this problem, i simply need a way to output text into debug window (output), and am looking for a simple, stable solution. Or perhaps there is a way to make this function work. I am kind of stuck.
I would appreciate it if you could share how you do it.
The code is:
#pragma once
#ifndef _XDEBUG_H_
#define _XDEBUG_H_
#include <stdio.h>
#include <stdarg.h>
#include <ctype.h>
class XDebug
{
public:
static void __cdecl odprintf(const wchar_t *format, ...){
wchar_t buf[4096], *p = buf;
va_list args;
int n;
va_start(args, format);
n = _vsnwprintf(p, sizeof buf - 3, format, args); // buf-3 is room for CR/LF/NUL
va_end(args);
p += (n < 0) ? sizeof buf - 3 : n;
while ( p > buf && isspace(p[-1]) )
*--p = '\0';
*p++ = '\r';
*p++ = '\n';
*p = '\0';
OutputDebugString(buf);
}
};
#endif
It looks like you haven’t done:
The
OutputDebugStringfunction is part of the Windows API.