2010-07-05 38 views

Trả lời

20

Nó chỉ chấp nhận một chuỗi như một tham số, không phải là một số nguyên. Hãy thử một cái gì đó giống như

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

Để biết thêm thông hãy nhìn vào http://www.unixwiz.net/techtips/outputdebugstring.html

+4

Xem xét sử dụng sprintf_s –

+4

+ @ Jon: Thậm chí tốt hơn nữa, xem xét sử dụng std :: stringstream. –

+1

@Billy ONeal: Tôi đã sử dụng tiêu chuẩn :: stringstream thay vì sprintf/sprintf_s như bạn đã đề xuất. Cảm ơn. – understack

0

Để sử dụng OutputDebugString(), cung cấp char * hoặc const char * như tham số:

OutputDebugString("This is an output"); 
9

Đối với mục đích gỡ lỗi bạn có thể sử dụng _RPT macros.

Ví dụ,

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

Cách phổ biến nhất tôi biết là TRACE vĩ mô:

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

Ví dụ:

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

Dường như TRACE được định nghĩa trong MFC, mà tôi không sử dụng. – understack

2

Tôi thấy điều này trả lời khi tìm kiếm thông báo lỗi: https://stackoverflow.com/a/29800589

Về cơ bản, bạn chỉ cần đặt dấu "L" ở phía trước của chuỗi đầu ra của bạn khi sử dụng OutputDebugString:

OutputDebugString(L"test\n");

Nó làm việc rất lớn đối với tôi.

Edit:

Đối với định dạng chuỗi với dữ liệu, tôi đã kết thúc bằng

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

Bởi không có nghĩa là tôi là một chuyên gia, tôi chỉ tìm thấy một cái gì đó mà làm việc và di chuyển trên.

+0

Điều đó không giải thích được nếu tôi muốn định dạng chuỗi và truyền dữ liệu cho chuỗi đó. –

+0

Tôi đã thêm giải pháp của mình hoạt động để tiêm.Tôi chuyên về nền tảng và ngôn ngữ iOS, vui lòng không coi đây là giải pháp chuyên gia :) – Jangles

0

Sử dụng:

OutputDebugStringA("Some random text"); 

Hoặc:

OutputDebugString(L"Some random text"); 
Các vấn đề liên quan