Самый простой способ записать выходное сообщение в "окно вывода" в 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");