Từ 1 tới 10 trên tổng số 10 kết quả

Đề tài: Không hiểu vì sao tài nguyên dành cho CT trong Task Manager cứ tăng hoài

  1. #1
    Ngày gia nhập
    05 2007
    Bài viết
    64

    Mặc định Không hiểu vì sao tài nguyên dành cho CT trong Task Manager cứ tăng hoài

    Mình đang gặp 1 vấn đề trong việc quản lý bộ nhớ của chương trình. Đây là một chương trình có sử dụng hàm SetTimer() và KillTimer() trong MFC để tạo 1 quả bóng di chuyển trong 1 khung. Rắc rối ở đây là khi mở Task Manager lên thì Tài nguyên dành cho chương trình liên tục tăng lên (nhấn nút Stop, thực thi hàm KillTimer thì nó dừng lại, nhấn Start, thực thi hàm SetTimer nó lại tăng lên), đến 1 lúc nào đó hệ thống sẽ báo lỗi.
    Ai có thể xem và chỉnh giùm mình đoạn code (trong file: CMyFrame.cpp và CMyFrame.h) dc ko. Xin cảm ơn !!!

    Source: http://www.freewebtown.com/file/test/Move1.rar
    I know... nothing

  2. #2
    Ngày gia nhập
    10 2007
    Bài viết
    169

    Thêm "ReleaseDC(dc);" vao cuối OnTimer() đi bạn! ^_^!

  3. #3
    Ngày gia nhập
    09 2006
    Bài viết
    711

    Code cậu lỗi nhiều quá, tui cũng không biết sữa làm sao nữa. Chỉ gợi ý cậu như sau:
    - Có Get thì phải có Release
    - Có SelectObject thì cũng phải SelectObject lại cho object cũ.
    - Đang SelectObject thì không được delete object, phải deselect xong mới được delete.
    App cậu sẽ làm cả Windows sụm bà chè sau 1 ngày run liên tuc.
    Tìm trên Internet tool BoundsChecker cho VC++, down về và chịu khó đọc help, tập dùng nó đi. Sẽ có ích cho cậu mãi mãi.

  4. #4
    Ngày gia nhập
    10 2007
    Nơi ở
    HCMUNS
    Bài viết
    459

    Tìm trên Internet tool BoundsChecker cho VC++, down về và chịu khó đọc help, tập dùng nó đi. Sẽ có ích cho cậu mãi mãi.
    Cám ơn anh N về thông tin rất bổ ích. Em tuy ít code C++ cũng sẽ xem thử thế nào .

    Link down trực tiếp:
    P/s: hic, giá của nó cũng ko rẻ tí nào, ver cho C là $299, ver cho C++ là $99
    Keep moving forward!

    ... Retired ...

  5. #5
    Ngày gia nhập
    05 2007
    Bài viết
    64

    Cảm ơn các bạn rất nhiều vì đã chỉ dẫn cho mình hết sức tận tình. Mình chỉ là 1 newbie của MFC, qua các lỗi mà các bạn chỉ ra mới thấy là nghiên cứu MFC chưa tới đâu cả :(.

    - Có SelectObject thì cũng phải SelectObject lại cho object cũ.
    - Đang SelectObject thì không được delete object, phải deselect xong mới được delete.
    - Mình ko hỉu lắm câu đầu tiên của bạn, SelectObject cho object cũ là sao, bạn có thể nói rõ cho mình dc ko.
    - Còn ở câu thứ 2, mình ko thấy phương thức nào có tên là Deselect như bạn nói cả, chỉ thấy DelectObject thôi.

    Mong các bạn tiếp tục giúp đỡ mình.
    I know... nothing

  6. #6
    Ngày gia nhập
    09 2006
    Bài viết
    711

    Mặc định Không hiểu vì sao tài nguyên dành cho CT trong Task Manager cứ tăng hoài

    - SelectObject lần đầu: hOld = SelectObject(hNew);
    - Deselect: SelectObject(hOld);
    Deselect xong mới DelectObject(hNew);
    hOld là GDI handle của Windows, default tạo sẵn. Không được đụng tới thằng này.

  7. #7
    Ngày gia nhập
    05 2007
    Bài viết
    64

    Cảm ơn bạn nhiều nha.
    Nhân đây cho mình hỏi một chút. Nếu muốn học MFC thì cách nào là tốt nhất? Học sử dụng Wizard (mình thấy mấy quyển sách toàn dạy kiểu này) hay là tạo từng file, rồi gõ từng đoạn code (mình thấy ít sách dạy kiểu này) ? Mình thích kiểu thứ 2 nhưng ko biết cách học này có thật sự "chuẩn" và cũng ko biết học như vậy có phải là cách tốt nhất ko nữa. Bạn có thể chia sẽ ít kinh nghiệm trong vấn đề này cho mình dc ko?
    I know... nothing

  8. #8
    Ngày gia nhập
    09 2006
    Bài viết
    711

    Hèn gì nhìn code MFC của cậu thấy "quái, MFC sao kỳ vậy". Trước mắt là newbie thì cứ Wizard mà dùng, tập debug vào tận trong source của MFC, C RTL để hiểu xem chúng làm việc ra sao. Sau này sẽ từ từ hiễu rõ MFC rồi mới modify nó.

  9. #9
    Ngày gia nhập
    05 2007
    Bài viết
    64

    Cho mình thắc mắc chúc xíu nữa nha. Bạn có đề cập đến "C RTL", có thể nói rõ cho mình chút xíu dc ko??? (hihi, đúng là mình còn newbie quá, càng nói, càng ko biết)
    I know... nothing

  10. #10
    Ngày gia nhập
    09 2006
    Bài viết
    711

    C RTL: C Runtime Library function: Các hàm thư viện của C

Các đề tài tương tự

  1. Graphic Chương trình chạy chỉ hiển thị trong task manager ?
    Gửi bởi ChickenInTech trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 0
    Bài viết cuối: 28-02-2012, 02:28 PM
  2. Tắt chương trình nhưng trong Process (Task manager) vẫn hiển thị
    Gửi bởi diepa9k39 trong diễn đàn Thắc mắc lập trình ASP.NET
    Trả lời: 2
    Bài viết cuối: 22-04-2011, 10:49 PM
  3. Windows 7 EndTask trong Task Manager
    Gửi bởi gianghoplus trong diễn đàn Windows API, Hooking, xử lý Windows Message
    Trả lời: 16
    Bài viết cuối: 15-08-2010, 07:21 PM
  4. Cung cấp 1 phương pháp lập trình mô hình Task manager
    Gửi bởi AlexF trong diễn đàn Công cụ, ebooks VC++
    Trả lời: 0
    Bài viết cuối: 11-10-2008, 10:11 PM
  5. Ẩn chương trình trong Task Manager
    Gửi bởi huongit1984 trong diễn đàn Windows API, Hooking, xử lý Windows Message
    Trả lời: 15
    Bài viết cuối: 28-09-2008, 08:46 PM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn