2010-07-05 6 views

Respuesta

20

sólo acepta una cadena como un parámetro, no es un entero. Pruebe algo como

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

Para obtener más información echar un vistazo a http://www.unixwiz.net/techtips/outputdebugstring.html

+4

considerar el uso de sprintf_s –

+4

+ @ Jon: Incluso mejor aún, considerar el uso de std :: stringstream. –

+1

@Billy ONeal: utilicé std :: stringstream en lugar de sprintf/sprintf_s como sugeriste. Gracias. – understack

0

Para utilizar OutputDebugString(), proporcionar char * o const char * como parámetro:

OutputDebugString("This is an output"); 
9

Para propósitos de depuración se puede utilizar _RPT macros.

Por ejemplo,

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

La forma más común yo sepa es el TRACE macro:

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

Por ejemplo:

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); 
+0

Parece que TRACE está definido en MFC, que no estoy usando. – understack

2

encontré este respuesta al buscar el mensaje de error: https://stackoverflow.com/a/29800589

Básicamente, sólo necesita poner una "L" en la parte frontal de la cadena de salida cuando se utiliza OutputDebugString:

OutputDebugString(L"test\n");

funcionó muy bien para mí.

Editar:

Para dar formato a cadenas con los datos, que terminé usando

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

De ninguna manera estoy un experto, acabo de encontrar algo que funcionó y siguió adelante.

+0

Eso no cuenta si quiero formatear la cadena y pasarle datos. –

+0

Agregué mi solución que funcionaba para inyección.Me especializo en la plataforma y los idiomas de iOS, por favor no lo consideren una solución experta :) – Jangles

0

Uso:

OutputDebugStringA("Some random text"); 

O:

OutputDebugString(L"Some random text"); 
Cuestiones relacionadas