Công cụ bảo vệ mã nguồn .NET mạnh nhất, không thể unpack, miễn phí cho các khách hàng đầu tiên đăng ký.
Từ 1 tới 6 trên tổng số 6 kết quả

Đề tài: Các hàm truy cập bô nhớ màn hình trong C

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

    Mặc định Các hàm truy cập bô nhớ màn hình trong C

    Có ai có thể cho mình biết cách sử dụng các hàm truy cập bô nhớ màn hình trong C không (càng chi tiết càng tốt) như các hàm peek(), poke(), MK_FP, FP_SEG, FP_OFF,… Mình đã tìm trong help của TC rồi nhưng vẫn không hiểu gì nhiều về cách sử dụng chúng, mong các bác giúp đỡ...
    Công cụ bảo vệ mã nguồn .NET mạnh nhất hiện tại, miễn phí cho các khách hàng đầu tiên đăng ký.
    Never put off till tomorrow what you can do today...

  2. #2
    Ngày gia nhập
    07 2008
    Nơi ở
    /media/Anime
    Bài viết
    2,288

    Đây là một demo nhỏ của mình về cách sử dụng buffer màn hình trong dos :

    C Code:
    1. #include <dos.h>
    2.  
    3. typedef char (far *s_arrayptr);
    4.  
    5. void PutCharToScreen(int x, int y, char ch, char color)
    6. {
    7.     s_arrayptr screen[160];
    8.     screen[0] = (s_arrayptr) MK_FP(0xB800,0);
    9.     screen[0][ ((y * 80) + x) * 2 + 0] = ch;
    10.     screen[0][ ((y * 80) + x) * 2 + 1] = color;
    11. }
    12.  
    13. void main(void)
    14. {
    15.     int k;
    16.     int x = 0, y = 0;
    17.     int i = 0;
    18.  
    19.     for (k=2;k<=3;k++)
    20.     {
    21.         x = y = 0;
    22.         while (y < 24)
    23.         {
    24.             PutCharToScreen(x,y,'A' + (i % 26), (i % 5) + 10);
    25.             i++;
    26.             x++;
    27.             if ((x % k) == 0)
    28.                 y++;
    29.         }
    30.     }
    31. }
    Đã được chỉnh sửa lần cuối bởi meoconlongvang : 25-09-2008 lúc 05:54 PM.
    Càng yêu mèo thì mèo càng mập. Mèo càng mập ta lại càng yêu.

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

    Bạn có thể giải thích rõ hơn về hàm MK_FP mà bạn dùng được không? Mình vẫn không hiểu tác dụng của nó lắm.
    Never put off till tomorrow what you can do today...

  4. #4
    Ngày gia nhập
    07 2008
    Nơi ở
    /media/Anime
    Bài viết
    2,288

    MK_FP là hàm trả về một far pointer trong dos, tham số truyền vào là 2 thành phần của địa chỉ far gồm segment và offset. Trong trường hợp này truyền vào 0xb8000 và 0 thì nó sẽ trả ra địa chỉ b800:0000 là địa chỉ của buffer màn hình.
    Càng yêu mèo thì mèo càng mập. Mèo càng mập ta lại càng yêu.

  5. #5
    Ngày gia nhập
    09 2008
    Bài viết
    19

    C Code:
    1. typedef char (far *s_arrayptr);

    Còn cái này là sao, mình chưa hiểu lắm. Ý là kiểu s_arrayptr là một pointer trỏ tới 1 biến char phải không, còn far đằng trước để làm gì?

  6. #6
    Ngày gia nhập
    07 2008
    Nơi ở
    /media/Anime
    Bài viết
    2,288

    Mặc định Các hàm truy cập bô nhớ màn hình trong C

    trong real mode dos, dung lượng bộ nhớ tối đa là 1mb. Một con trỏ bình thường chỉ có thể trỏ tối đa tới 64kb, tức là nó dùng ds hiện tại và trỏ tới địa chỉ offset. Far là để báo cho biến con trỏ này sẽ trỏ tới offset thuộc segment khác, tức là ds sẽ thay đổi.
    Công cụ bảo vệ mã nguồn .NET mạnh nhất hiện tại, miễn phí cho các khách hàng đầu tiên đăng ký.
    Càng yêu mèo thì mèo càng mập. Mèo càng mập ta lại càng yêu.

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

  1. MS SQL với C# Cách truy cập một trường thông qua số thứ tự trường trong bảng?
    Gửi bởi trongtamvoi trong diễn đàn Thắc mắc Microsoft SQL Server & Microsoft Access
    Trả lời: 3
    Bài viết cuối: 15-11-2012, 05:14 PM
  2. Lập trình C++ cách truy cập vào hệ điều hành trong lập trình C/C++?
    Gửi bởi caohuong_ls trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 3
    Bài viết cuối: 09-10-2012, 05:26 PM
  3. Lập trình 1 website thường truy cập PC sang truy cập trong mobile
    Gửi bởi jindo872606 trong diễn đàn Thắc mắc lập trình ASP.NET
    Trả lời: 2
    Bài viết cuối: 27-03-2012, 03:33 PM
  4. Một câu truy vấn có thể truy vấn cả CSDL Access và DBase trong C# ko?
    Gửi bởi thuchobiet trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 4
    Bài viết cuối: 24-11-2010, 08:25 AM
  5. MS SQL với C# câu truy vấn tỉnh tổng của cột trong MS SQL?
    Gửi bởi luxubu trong diễn đàn Thắc mắc Microsoft SQL Server & Microsoft Access
    Trả lời: 11
    Bài viết cuối: 27-05-2010, 07:07 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