Tôi gặp lỗi khi chạy chương trình được viết bằng C++ trong GTK. Chương trình dừng lại khi lỗi này xuất hiện. Tôi là người mới bắt đầu và tôi không biết phải làm gì cho việc này. Lỗi như sau.
(chính:4082): Gdk-ERROR **: 15:33:56.607: Chương trình 'chính' nhận được lỗi Hệ thống X Window.
Điều này có thể phản ánh một lỗi trong chương trình.
Lỗi là 'BadLength (nhiều yêu cầu quá lớn hoặc lỗi độ dài Xlib nội bộ'.
(Chi tiết: serial 56298 error_code 16 request_code 139 (RENDER) minor_code 23)
(Lưu ý cho người lập trình: thông thường, lỗi X được báo cáo không đồng bộ;
nghĩa là, bạn sẽ nhận được lỗi một lúc sau khi gây ra nó.
Để gỡ lỗi chương trình của bạn, hãy chạy nó với môi trường GDK_SYNCHRONIZE
biến để thay đổi hành vi này. Sau đó bạn có thể nhận được một ý nghĩa
truy xuất ngược từ trình gỡ lỗi của bạn nếu bạn ngắt hàm gdk_x_error().)
Bẫy dấu vết/điểm ngắt (đã bán phá giá lõi)
Tôi đã sử dụng một chức năng để chạy không đồng bộ trong chương trình. Tôi nghĩ rằng lỗi này có thể là do điều đó.
Chức năng như sau.
void asyncFunction(){
trong khi(1){
bộ đếm = bộ đếm +1;
//cout << counter<<endl;
chuỗi str = to_string(bộ đếm);
const char * bn = str.c_str();
gtk_entry_set_text(GTK_ENTRY(Entry_length) , bn);
ngủ(2);
}
}
Và tôi đã thêm dòng sau vào tệp main.
tương lai<void> fn = async(launch::async, asyncFunction);
Tôi tìm thấy điều này trên internet và tôi không có nhiều ý tưởng về điều này.
Bất cứ ai có thể xin vui lòng giúp tôi khắc phục lỗi này. Cảm ơn bạn.