Самый простой способ записать выходное сообщение в "окно вывода" в Visual Studio 2010?

Я пробовал функцию OutputDebugString и большую часть времени получаю ошибку, например:

error C2664: 'OutputDebugStringA' : cannot convert parameter 1 from 'int' to 'LPCSTR'

Прошу предложить. Спасибо.

Ответы

Ответ 1

Он принимает только строку как параметр, а не целое число. Попробуйте что-то вроде

sprintf(msgbuf, "My variable is %d\n", integerVariable);
OutputDebugString(msgbuf);

Для получения дополнительной информации см. http://www.unixwiz.net/techtips/outputdebugstring.html

Ответ 2

Для целей отладки вы можете использовать _RPT макросы.

Например,

_RPT1( 0, "%d\n", my_int_value );

Ответ 3

Наиболее распространенным способом, который я знаю, является макрос TRACE:

http://msdn.microsoft.com/en-us/library/4wyz8787%28VS.80%29.aspx

Например:

int x = 1;
int y = 16;
float z = 32.0;
TRACE( "This is a TRACE statement\n" );

TRACE( "The value of x is %d\n", x );

TRACE( "x = %d and y = %d\n", x, y );

TRACE( "x = %d and y = %x and z = %f\n", x, y, z );

Ответ 4

Я нашел этот ответ при поиске сообщения об ошибке: fooobar.com/questions/364589/...

В принципе, вам просто нужно поставить "L" перед вашей выходной строкой при использовании OutputDebugString:

OutputDebugString(L"test\n");

Это отлично поработало для меня.

Edit:

Для форматирования строк с данными я закончил использование

char buffer[100]; sprintf_s(buffer, "check it out: %s\n", "I can inject things"); OutputDebugStringA(buffer);

Я не эксперт, я просто нашел что-то, что сработало и перешло.

Ответ 5

Использование:

OutputDebugStringA("Some random text");

Или же:

OutputDebugString("Some random text");

Ответ 6

Чтобы использовать OutputDebugString(), укажите char * или const char * в качестве параметра:

OutputDebugString("This is an output");