신비한 이유로 표시되고 사라지는 문제가 있습니다. 내가 프로젝트를 시작할 때 VS2010에서 디버그 창 출력을 허용하는 상당히 편리한 기능을 발견했습니다. 그것은 잠시 동안 위대한 일을했습니다.OutputDebugString이 일치하지 않는 오류를 일으키는 경우
이제 오류가 일관성없이 표시됩니다. 즉, 때로는 코드가 컴파일 될 때가 있고 때로는 그렇지 않을 수도 있으며, 오류를 일으키는 코드가있는 이유를 찾을 수 없습니다. 거의 무작위로 보인다. 누르면 컴파일, 오류, 언론 때로는 오류가 잘 때로는 아무것도 변경하지 않고 다시 컴파일합니다.
http://clip2net.com/clip/m0/1332710747-clip-29kb.png
및없이 :
이
은 오류가있는 모습입니다http://clip2net.com/clip/m0/1332737362-clip-40kb.png
가 범인 OutputDebugString로한다 (BUF); 주석 처리 된 행에 오류가 발생하지 않습니다.
이 문제를 해결하려면 디버그 창 (출력)에 텍스트를 출력하는 방법이 필요하며 간단하고 안정적인 솔루션을 찾고 있습니다. 또는 아마도이 기능을 작동시키는 방법이있을 것입니다. 나는 꼼짝 못한다.
당신이 어떻게하는지 공유 할 수 있으면 감사하겠습니다.
코드는 다음과 같습니다
#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
해결해 주셔서 감사합니다. 때때로 컴파일 할 이유가 여전히 의아해했습니다. 감사합니다. –