Bạn có chắc chắn muốn xóa bài viết này không ?
Bạn có chắc chắn muốn xóa bình luận này không ?
Hiển thị Console log cho ứng dụng GUI C++ trên Windows bằng DebugView++
Hiển thị Console log cho ứng dụng GUI C++ trên Windows bằng DebugView++
Gần đây mình có làm GUI C++ với nền tảng của Windows, Visual Studio (trước toàn làm bên linux, dùng Qt chẳng hạn). Chưa có kinh nghiệm lập trình GUI trên windows nhiều nên lúc đầu loay hoay không biết làm thế nào để in ra console debug, vì ứng dụng GUI của windows không có console để hiển thị. Search một hồi thì cũng thấy có người dùng hàm TRACE
, hàm này tương tự như printf
hay cout
cho console nhưng chỉ dùng được ở chế độ Debug build mode, và chỉ xem được bằng khung Output
của Visual Studio
Sau đó thằng cùng cty mới chỉ cho dùng hàm OutputDebugStrings của windows. Hàm này có cái hay là nếu chạy ứng dụng từ Visual Studio thì nó sẽ hiển thị lên khung Output
, còn nếu chạy ứng dụng độc lập, (ví dụ là đem sang máy khác chạy) thì có thế dùng ứng dụng DebugView++ để hiển thị. Ứng dụng hiển thị tất cả outputdebugstring của tất cả ứng dụng windows, tuy nhiên nó hỗ trợ filter, hightlight, excude nên rất tiện sử dụng
Hàm OutputDebugString
chỉ cho input là 1 chuỗi, không cho format nên mình có thêm hàm sau để hỗ trợ format, dùng như printf
luôn.
#pragma once
#include <windows.h>
#include <stdlib.h>
template<class... Args>
void COMMAND_LOG(Args&&... args) {
char buff[512];
sprintf_s(buff, args...);
OutputDebugString(buff);
}





