Dẫn nhập lập trình C trên Windows
Số trang: 8
Loại file: doc
Dung lượng: 332.00 KB
Lượt xem: 12
Lượt tải: 0
Xem trước 2 trang đầu tiên của tài liệu này:
Thông tin tài liệu:
Tài liệu dẫn nhập lập trình C trên Windows nhằm mục đích đưa ra 1 cách tiếp cận với lập trình C trên windows, hy vọng có thể đơn giản hóa vấn đề 1 cách tốt nhất. Mời các bạn cùng tham khảo nhé!
Nội dung trích xuất từ tài liệu:
Dẫn nhập lập trình C trên WindowsDẫn nhập vào lập trình Win32 apiDẫn nhập lập trình C trên WindowsHôm nay, langman – x quyết định ngồi viết 1 tut nhằm mục đích đưa ra 1 cách tiếp cậnvới lập trình C trên windows, hy vọng có thể đơn giản hóa vấn đề 1 cách tốt nhất.Chắc là còn nhiều chỗ sai sót lắm, mong được các bạn giúp đỡ sửa lỗi I. Một vài kiến thứca. Từ khóaThật ra thì đây vẫn là C chỉ khác cái platform thôi.+ Trước đây chúng ta học ngôn ngữ C với IDE là Borland C ( hoặc Turbo C ) trên nềnntvdm -> 1 sảm phẩm con trong gói sảm phẩm : MS Windows XP+ Bây giờ chúng ta học C trên platform là windows, chúng ta sẽ tạo ra các chương trìnhgiao tiếp trực tiếp với nhân của hệ điều hành windows chứ ko phải qua thằng ntvdmnữa.Các bạn chú ý là platform thay đổi chứ ngôn ngữ vẫn thế ( giống như là bạn nói tiếnganh ở nước anh, tiếng anh ở nước mĩ và tiếng anh ở việt nam vậy )Và vì thế, toàn bộ từ khóa vẫn như thế, ko có từ khóa nào mới cả.b. Quy ước đặt tên của microsoftSẽ thật là khó nắm bắt, thật là hoa mắt nếu bạn ko hiểu được quy tắc đặt tên của ms.Bạn hãy để ý kĩ, chúng có quy tắc đấy, và nó như sau:_ Tất cả các kiểu dữ liệu mở rộng của windows , tên class, tên struct, tên hằng số địnhsẵn đều được viết in hoaVí dụ :tên kiểu dữ liệu : UINT , ATOM , HANDLE, HWND, BYTE,….tên cấu trúc : MSG, PAINSTRUCT, WNDCLASS ,.... (đây là C nên chưa có class)tên hằng số định sẵn : NULL, IDI_APPLICATION, CS_VREDRAW,….._ Tất cả các method (các hàm, các phương thức) đều được viết hoa (pascal notation).Ví dụ :LoadIcon(…)LoadCursor(…)SomeOtherName(…)_ Tất cả các tên biến, tên đối tượng đều được viết theo camel notation : ( chữ cái đầuviết thường, còn đoạn sau thì được viết theo chuẩn của pascal)Ví dụ:hWnd; // cá nhân tôi thì thích đặt là hwnd hơn cho nó gọn gàngmsg;wParamhInstancesomeOtherNameồ, nếu bạn nắm được quy tắc này, nhìn vào các source sẽ thấy nó đỡ hoa mắt hơn rồiđó, ta đã thấy được nó đơn giản hơn 1 chút rồi !!!Nhân tiện , nói về ms, chúng ta , người vn có lẽ nên tự hào vì đại diện cho ms tại đôngnam á chính là 1 tiến sĩ hói đầu người việt nam. He he he…….c. HandleĐây là 1 từ rất hay gặp trong tin học, khuyên chân thành đừng có dùng google để tra nóvà cũng ko nên nên tra nó làm gì, từ này ko nên dịch, x sẽ giải thích nó cho bạn ngaygiờ đây, ( trình độ tiếng anh của mình hơi lùn, có gì mong được bỏ qua cho)+ Số hiệu : xuất phát từ ý tưởng như này, trong ngành công an có rất nhiều người, cónhiều người trùng cả tên lẫn họ , nhưng mỗi đồng chí công an đều có 1 số hiệu riêng,đó là ID của mỗi người, và khi cần tra về 1 ai đó, tất nhiên là tra bằng số hiệu nàyrồi,..+ File handle : đối với file , chương trình của bạn làm sao để hiểu rằng bạn đang làmviệc với file nào ? nằm ở đâu ? chả lẽ mỗi lần bạn mở file để ghi thì tạo 1 biến kiểuxâu kí tự để lưu trữ đường dẫn của file à như thế quá dài dòng, loằng ngoằng.Hệ thống có cung cấp cho chúng ta 1 file table, nó tồn tại trong ổ cứng của bạn với cáitên là FAT table. Mỗi file có 1 số hiệu riêng, và cái chúng ta dùng để định danh nên cácfile chính là số hiệu này.Ví dụ dễ hiểu 1 cái table nha : (tất nhiên là trên thực tế nó lôm côm hơn nhiều nhưnày)PHP Code:Số hiệu Tên file Đường dẫn007 a.mp3 D:\Music\008 b.avi D:\Setup009 a.mp3 C:\+ Window handle : trong màn hình chúng ta có rất nhiều cửa sổ với các cái tên khácnhau, vậy OS nắm bắt các cửa sổ này thế nào ? Mỗi cửa số có 1 số hiệu riêng, nóchính là handle của 1 cửa sổ. và OS sẽ thông qua thông số đó để hiểu từng cửa sổVậy handle là 1 số nguyên, nó dùng để định danh lên 1 object cụ thể. Số này được ánhxạ qua handle table để chỉ ra đối tượng đó. Trong windows 32bit nó là 1 số nguyên4byteTrong các tên do ms định ra, thì từ h được viết tắt của handleVí dụ : HWND, HINSTANCE, hPrevInstanced. Một số từ khó hiểu+ WINAPI , CALLBACK : từ này đặt trước hàm main, ở 1 số tài liệu khác còn có cáctừ như APIENTRY, PASCAL , APIPRIVATEThật là khủng bố khi mà có quá nhiều từ đáng sự như thế với nhưng bạn hãy bình tĩnh,sau 1 hồi mở các file .h lên tôi tìm được mấy dòng này :#define CALLBACK __stdcall#define WINAPI __stdcall#define APIENTRY WINAPI#define APIPRIVATE __stdcall#define PASCAL __stdcallChúng đều là 1, thật tuyệt vời , chúng là 1 cả thôi, google tôi thấy chúng là callingconvention. Tuyệt. Vậy chúng thuộc vào nhóm compiler to compiler. Những từ nàythêm vào trước tên hàm nhằm mục đích chỉ rõ cho compiler hàm này có cách tổ chứcphục vụ cho việc gọi đến như thế nào....Nói tóm lại, bạn chỉ cần biết :_ chúng thuộc loại “compiler to compiler” và chúng đều là 1_ Đừng viết lẫn lộn nó để tránh nguy cơ…. bị thầy giáo chém+ LRESULT : nói 1 cách đơn giản thế này , đây chính là kiểu dữ liệu nguyên 4byte, và1 cái nhìn đơn giản : nó là 1 số nguyên. Bạn cũng chỉ cần nhớ thế thôi, (còn n ...
Nội dung trích xuất từ tài liệu:
Dẫn nhập lập trình C trên WindowsDẫn nhập vào lập trình Win32 apiDẫn nhập lập trình C trên WindowsHôm nay, langman – x quyết định ngồi viết 1 tut nhằm mục đích đưa ra 1 cách tiếp cậnvới lập trình C trên windows, hy vọng có thể đơn giản hóa vấn đề 1 cách tốt nhất.Chắc là còn nhiều chỗ sai sót lắm, mong được các bạn giúp đỡ sửa lỗi I. Một vài kiến thứca. Từ khóaThật ra thì đây vẫn là C chỉ khác cái platform thôi.+ Trước đây chúng ta học ngôn ngữ C với IDE là Borland C ( hoặc Turbo C ) trên nềnntvdm -> 1 sảm phẩm con trong gói sảm phẩm : MS Windows XP+ Bây giờ chúng ta học C trên platform là windows, chúng ta sẽ tạo ra các chương trìnhgiao tiếp trực tiếp với nhân của hệ điều hành windows chứ ko phải qua thằng ntvdmnữa.Các bạn chú ý là platform thay đổi chứ ngôn ngữ vẫn thế ( giống như là bạn nói tiếnganh ở nước anh, tiếng anh ở nước mĩ và tiếng anh ở việt nam vậy )Và vì thế, toàn bộ từ khóa vẫn như thế, ko có từ khóa nào mới cả.b. Quy ước đặt tên của microsoftSẽ thật là khó nắm bắt, thật là hoa mắt nếu bạn ko hiểu được quy tắc đặt tên của ms.Bạn hãy để ý kĩ, chúng có quy tắc đấy, và nó như sau:_ Tất cả các kiểu dữ liệu mở rộng của windows , tên class, tên struct, tên hằng số địnhsẵn đều được viết in hoaVí dụ :tên kiểu dữ liệu : UINT , ATOM , HANDLE, HWND, BYTE,….tên cấu trúc : MSG, PAINSTRUCT, WNDCLASS ,.... (đây là C nên chưa có class)tên hằng số định sẵn : NULL, IDI_APPLICATION, CS_VREDRAW,….._ Tất cả các method (các hàm, các phương thức) đều được viết hoa (pascal notation).Ví dụ :LoadIcon(…)LoadCursor(…)SomeOtherName(…)_ Tất cả các tên biến, tên đối tượng đều được viết theo camel notation : ( chữ cái đầuviết thường, còn đoạn sau thì được viết theo chuẩn của pascal)Ví dụ:hWnd; // cá nhân tôi thì thích đặt là hwnd hơn cho nó gọn gàngmsg;wParamhInstancesomeOtherNameồ, nếu bạn nắm được quy tắc này, nhìn vào các source sẽ thấy nó đỡ hoa mắt hơn rồiđó, ta đã thấy được nó đơn giản hơn 1 chút rồi !!!Nhân tiện , nói về ms, chúng ta , người vn có lẽ nên tự hào vì đại diện cho ms tại đôngnam á chính là 1 tiến sĩ hói đầu người việt nam. He he he…….c. HandleĐây là 1 từ rất hay gặp trong tin học, khuyên chân thành đừng có dùng google để tra nóvà cũng ko nên nên tra nó làm gì, từ này ko nên dịch, x sẽ giải thích nó cho bạn ngaygiờ đây, ( trình độ tiếng anh của mình hơi lùn, có gì mong được bỏ qua cho)+ Số hiệu : xuất phát từ ý tưởng như này, trong ngành công an có rất nhiều người, cónhiều người trùng cả tên lẫn họ , nhưng mỗi đồng chí công an đều có 1 số hiệu riêng,đó là ID của mỗi người, và khi cần tra về 1 ai đó, tất nhiên là tra bằng số hiệu nàyrồi,..+ File handle : đối với file , chương trình của bạn làm sao để hiểu rằng bạn đang làmviệc với file nào ? nằm ở đâu ? chả lẽ mỗi lần bạn mở file để ghi thì tạo 1 biến kiểuxâu kí tự để lưu trữ đường dẫn của file à như thế quá dài dòng, loằng ngoằng.Hệ thống có cung cấp cho chúng ta 1 file table, nó tồn tại trong ổ cứng của bạn với cáitên là FAT table. Mỗi file có 1 số hiệu riêng, và cái chúng ta dùng để định danh nên cácfile chính là số hiệu này.Ví dụ dễ hiểu 1 cái table nha : (tất nhiên là trên thực tế nó lôm côm hơn nhiều nhưnày)PHP Code:Số hiệu Tên file Đường dẫn007 a.mp3 D:\Music\008 b.avi D:\Setup009 a.mp3 C:\+ Window handle : trong màn hình chúng ta có rất nhiều cửa sổ với các cái tên khácnhau, vậy OS nắm bắt các cửa sổ này thế nào ? Mỗi cửa số có 1 số hiệu riêng, nóchính là handle của 1 cửa sổ. và OS sẽ thông qua thông số đó để hiểu từng cửa sổVậy handle là 1 số nguyên, nó dùng để định danh lên 1 object cụ thể. Số này được ánhxạ qua handle table để chỉ ra đối tượng đó. Trong windows 32bit nó là 1 số nguyên4byteTrong các tên do ms định ra, thì từ h được viết tắt của handleVí dụ : HWND, HINSTANCE, hPrevInstanced. Một số từ khó hiểu+ WINAPI , CALLBACK : từ này đặt trước hàm main, ở 1 số tài liệu khác còn có cáctừ như APIENTRY, PASCAL , APIPRIVATEThật là khủng bố khi mà có quá nhiều từ đáng sự như thế với nhưng bạn hãy bình tĩnh,sau 1 hồi mở các file .h lên tôi tìm được mấy dòng này :#define CALLBACK __stdcall#define WINAPI __stdcall#define APIENTRY WINAPI#define APIPRIVATE __stdcall#define PASCAL __stdcallChúng đều là 1, thật tuyệt vời , chúng là 1 cả thôi, google tôi thấy chúng là callingconvention. Tuyệt. Vậy chúng thuộc vào nhóm compiler to compiler. Những từ nàythêm vào trước tên hàm nhằm mục đích chỉ rõ cho compiler hàm này có cách tổ chứcphục vụ cho việc gọi đến như thế nào....Nói tóm lại, bạn chỉ cần biết :_ chúng thuộc loại “compiler to compiler” và chúng đều là 1_ Đừng viết lẫn lộn nó để tránh nguy cơ…. bị thầy giáo chém+ LRESULT : nói 1 cách đơn giản thế này , đây chính là kiểu dữ liệu nguyên 4byte, và1 cái nhìn đơn giản : nó là 1 số nguyên. Bạn cũng chỉ cần nhớ thế thôi, (còn n ...
Tìm kiếm theo từ khóa liên quan:
Lập trình C Hướng dẫn lập trình Tài liệu lập trình Lập trình C trên Windows Lập trình máy tính lập trình Win32 apiGợi ý tài liệu liên quan:
-
Bài giảng Tin học lớp 11 bài 1: Giới thiệu ngôn ngữ lập trình C#
15 trang 222 0 0 -
15 trang 196 0 0
-
NGÂN HÀNG CÂU HỎI TRẮC NGHIỆM THIẾT KẾ WEB
8 trang 188 0 0 -
65 trang 153 0 0
-
69 trang 144 0 0
-
Bài giảng Công nghệ phần mềm - Chương 2: Quy trình xây dựng phần mềm
36 trang 137 0 0 -
Hướng dẫn thực hành lập trình C trên Visual Studio
9 trang 125 0 0 -
Giáo trình Lập trình C căn bản - HanoiAptech Computer Education Center
136 trang 117 0 0 -
Bài giảng lập trình c căn bản - Trường Apptech - Chương 4
27 trang 117 0 0 -
Giáo trình Kỹ thuật lập trình C: Căn bản & nâng cao - Phần 1
202 trang 116 0 0