Tôi tự hỏi tại sao WinAPI lại khác nhiều so với lập trình C bình thường? Tôi có nghĩa là, ở trường tôi đã học được rằng mỗi chương trình C có một hàm main() (WinAPI sử dụng WinMain với một số tham số đặc biệt), một số kiểu biến như int, long, char, vv .. (WinAPI sử dụng những thứ như LPCSTR, BOOL , v.v.) tại sao Microsoft quyết định đi theo một cách khác với API OS của họ?Tại sao WinAPI lại khác với C "bình thường"?
Khi tôi thấy chương trình WinAPI đầu tiên của tôi, tôi có vẻ giống như một ngôn ngữ mới đối với tôi ...;)
Inno - Tôi không chắc tại sao MS sử dụng #defines cho nhiều loại biến của chúng. Nếu bạn muốn biết tại sao họ quyết định làm điều đó, tôi sẽ gửi email cho Charles Petzold. Nếu có ai biết, anh sẽ làm thế. –
@ J.Polfer: Sử dụng bí danh cho các loại tham số là rất phổ biến đối với mã thư viện. Nó cho phép tác giả thay đổi loại cụ thể trong giao diện trong khi duy trì tính tương thích nguồn. Bạn vẫn có thể biên dịch mã Windows 16 bit hợp lệ để nhắm mục tiêu phiên bản Windows 64 bit, mặc dù các loại cơ bản cho ví dụ: 'WPARAM' hoặc' LPARAM' đã thay đổi nhiều lần. 'BOOL' có một lịch sử khác nhau: Khi công việc trên Windows bắt đầu, không có kiểu boolean trong ngôn ngữ C. Nó được giới thiệu vào cuối C99. – IInspectable