Tôi đã bắt đầu một dự án trống trong Visual Studio 2010 để viết một ứng dụng C. Làm cách nào để gửi thông tin gỡ lỗi đến cửa sổ Đầu ra (menu Gỡ lỗi ->Windows ->Đầu ra)? Có cách nào tương đối đơn giản để triển khai TRACE
hoặc OutputDebugString
hoặc tương tự không?Cách đơn giản để gửi thông tin gỡ lỗi đến cửa sổ Visual Studio 'Output'
Trả lời
OutputDebugString
là cách cách thực hiện. Câu hỏi về Stack Overflow How can I use the TRACE macro in non-MFC projects? chứa thông tin về cách tạo một cái gì đó tương tự như MFC của một macro TRACE
sử dụng OutputDebugString
.
Bạn có thể sử dụng OutputDebugString
từ chương trình VS C.
#include <windows.h>
int _tmain(int argc, _TCHAR* argv[])
{
OutputDebugString(_T("Hello World\n"));
return 0;
}
Kết quả sẽ chỉ được hiển thị nếu bạn chạy với gỡ lỗi (Debug> Start Debugging)
Trong cửa sổ Output, chọn "Debug" cho "Hiển thị đầu ra từ:"
_T() đang được ...? – Simon
@Simon là một macro tiền xử lý chuẩn của Microsoft để xử lý việc tạo các chương trình biên dịch cả ở chế độ Unicode và chế độ ANSI. Bạn có thể xóa _T() nếu bạn không sử dụng [tchar.h và bạn bè] (https://msdn.microsoft.com/en-us/library/windows/desktop/ff381407 (v = vs.85). aspx # tchars). –
Nếu bạn sử dụng C++, bạn có thể quan tâm đến macro TRACE di động của mình.
#ifdef ENABLE_TRACE
# ifdef _MSC_VER
# include <windows.h>
# include <sstream>
# define TRACE(x) \
do { std::ostringstream s; s << x; \
OutputDebugString(s.str().c_str()); \
} while(0)
# else
# include <iostream>
# define TRACE(x) std::cerr << x << std::flush
# endif
#else
# define TRACE(x)
#endif
dụ:
#define ENABLE_TRACE //can depend on _DEBUG or NDEBUG macros
#include "my_above_trace_header.h"
int main (void)
{
int i = 123;
double d = 456.789;
TRACE ("main() i="<< i <<" d="<< d <<'\n');
}
Bất kỳ cải tiến/đề xuất/đóng góp đều được chào đón ;-)
thể trùng lặp của [In ra trên cửa sổ Output trong Visual C++ IDE] (http: // stackoverflow.com/questions/7697842/printing-output-on-the-output-window-in-visual-c-ide) –
Xem thêm: http://stackoverflow.com/q/1333527/39648 –