Hiển thị Console log cho ứng dụng GUI C++ trên Windows bằng DebugView++
TIL
720
C++
38
windows
4
debug
7
White

Manh Truong Tuan viết ngày 14/06/2018

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
DebugView++
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);
}
Bình luận


White
{{ comment.user.name }}
Bỏ hay Hay
{{comment.like_count}}
Male avatar
{{ comment_error }}
Hủy
   

Hiển thị thử

Chỉnh sửa

White

Manh Truong Tuan

8 bài viết.
6 người follow
Kipalog
{{userFollowed ? 'Following' : 'Follow'}}
Cùng một tác giả
White
5 4
Vài hôm trước, khi phải giải quyết một task liên quan đến việc phải thêm 1 vài thay đổi khá lớn cho một loạt các function có sẵn thì mình chợt nhớ ...
Manh Truong Tuan viết hơn 1 năm trước
5 4
White
4 3
Sử dụng Terminal hiệu quả hơn với tmux (Link) 1. Cài đặt bash $ sudo E addaptrepository ppa:pirho/dev $ sudo aptget update $ sudo aptget install...
Manh Truong Tuan viết gần 3 năm trước
4 3
White
2 0
Bài toán là 1 mô hình kiểu mạng xã hội đơn giản, trong đó user nhấn vào 1 nút Add friend hoặc Follow để cho 1 user khác vào danh sách theo dõi ( để...
Manh Truong Tuan viết gần 3 năm trước
2 0
Bài viết liên quan
White
0 0
Installing a Windows VM on desktop Linux using VirtualBox is trivial, but installing and using Windows guest (which inherently requires a GUI) on a...
hai-ld viết 2 năm trước
0 0
Male avatar
0 0
Constructor của lớp cha luôn được gọi trước constructor của lớp con. class Foo { public: Foo() { cout << "Base class initializing" << endl; ...
phqb viết hơn 2 năm trước
0 0
{{like_count}}

kipalog

{{ comment_count }}

bình luận

{{liked ? "Đã kipalog" : "Kipalog"}}


White
{{userFollowed ? 'Following' : 'Follow'}}
8 bài viết.
6 người follow

 Đầu mục bài viết

Vẫn còn nữa! x

Kipalog vẫn còn rất nhiều bài viết hay và chủ đề thú vị chờ bạn khám phá!