2013-04-01 37 views
6

Có cần xóa HDC và HRC khi sử dụng win32 api cho OpenGL không? Tôi nghĩ Win32API sẽ phá hủy chúng khi đóng cửa sổ?Có cần xóa ngữ cảnh hiển thị và phá hủy ngữ cảnh thiết bị không?

Làm rõ: HRC là đối tượng HGLRC.

+0

Có thể dup http://stackoverflow.com/questions/6421287/windows-when-to-delete-object-and-device-context –

+0

Bạn đã tạo DC chưa? Hay bạn chỉ cần đến một GetDC trên một cửa sổ? –

Trả lời

7

Có cần thiết không? Nếu quá trình của bạn chấm dứt chính nó sau khi đóng cửa sổ, không. Windows sẽ dọn dẹp các xử lý nổi bật của các loại này.

Nên bạn làm điều đó? Chắc chắn rồi. Bạn nên luôn luôn dọn dẹp các đối tượng bạn sử dụng trong ứng dụng của mình. Việc bỏ mọi thứ trên sàn để hệ điều hành dọn dẹp không phải là cách thực hành tốt. Nếu không có lý do nào khác ngoài việc bạn có thể muốn tạo một cửa sổ mới sau khi đóng cửa sổ cũ. Trong trường hợp đó, bạn có HGLRC rác nằm xung quanh chiếm tài nguyên quý giá.

0

Phát hành (không xóa) HDC ngay khi có thể. Tôi đã làm OpenGL, vì vậy tôi không hoàn toàn biết những gì HGLRC được sử dụng cho, nhưng tôi nghi ngờ đó là xử lý tương tự. Bắt xử lý là rẻ; giữ chúng có thể có vấn đề.

Các vấn đề liên quan