https://stackoverflow.com/questions/149698/what-is-a-good-mfc-starting-bookCách thay thế cho MFC
Rất nhiều ý kiến nhận xét được nâng cấp có nhiều lựa chọn thay thế tốt hơn. Tôi muốn biết chúng có thể là gì.
Yêu cầu chính của tôi là giao diện người dùng sử dụng các tiện ích gốc để phần mềm tự động hóa của chúng tôi có thể hoạt động. Các cửa sổ được vẽ chủ sở hữu khó lái hơn nhiều.
Tôi không đặc biệt thích thiết kế của MFC nên một giải pháp thay thế sẽ tốt. Chỉ có một cái tôi tìm thấy là WX, cái mà chúng tôi đã thử và đang cân nhắc việc từ bỏ. Chúng ta cần thứ gì đó không ép buộc chúng ta chiến đấu với một bó gói nền tảng mà chúng ta không quan tâm. Chúng tôi đang viết một ứng dụng Windows và tiếp thị không cung cấp cho một crap duy nhất về nhắm mục tiêu Mac hoặc Linux (yeah, nó làm cho mông của tôi bị tổn thương quá).
Tôi đã xem xét tùy chọn .NET một chút. Vấn đề là tôi không biết nhiều về nó, nhưng từ những gì tôi có thể nói chúng tôi sẽ phải sử dụng C# để có được rất nhiều các tùy chọn có sẵn với MFC. Ví dụ, bộ công cụ C++/CLI dường như không có cửa sổ docking. Trong thực tế, một tùy chọn WinFroms thẳng lên dường như không. Có vẻ như chúng ta phải tạo một dự án WPF và dường như không phải là tất cả những gì chúng ta thực sự muốn (và chúng ta sẽ có một đống lớn crap để học bên cạnh một bộ công cụ khác). Di chuyển ra khỏi C++ cũng sẽ đòi hỏi rất nhiều gói và tôi không đặc biệt thích kết quả mà tôi đã nhìn thấy từ trình bao bọc tự động.
Vấn đề khác tôi có với tùy chọn .NET là chúng tôi có một ứng dụng vẽ khá mạnh (ngoài việc yêu cầu nhiều biểu mẫu). Tôi biết rằng bạn có thể nhận được kết quả tương tự với các ngôn ngữ JIT như .NET nhưng tôi cũng biết bạn phải cẩn thận hơn nhiều để làm như vậy. Đó là một vấn đề tôi muốn tránh lo lắng về thời gian này.
Vấn đề khác, và có lẽ quan trọng nhất với .NET (ít nhất là chuyển đổi ngôn ngữ) là chúng ta có nguồn cung cấp logic giao diện khổng lồ mặc dù API là thuyết bất khả tri, được viết rất nhiều trong C++.
Vì vậy, các tùy chọn khác là gì? Những người này thực sự có điểm hay họ chỉ la hét chống lại bất cứ thứ gì không phải là ngôn ngữ hoặc bộ công cụ yêu thích của họ?
LƯU Ý:
Sự cố ở đây là gì ?? Tôi nói cụ thể rằng việc chuyển sang các nền tảng khác thậm chí KHÔNG xem xét từ xa và tôi CÓ CÓ cái gì đó sử dụng bộ tiện ích gốc để chúng tôi không phải thay đổi hoàn toàn mọi thứ mà thử nghiệm sử dụng để tự động hóa sản phẩm !!!! Có ai thực sự đọc câu hỏi của tôi không?
Cá nhân tôi không tìm thấy MFC xấu. Đó là một chút lỗi thời và tài liệu của nó không phải là luôn luôn tuyệt vời nhưng tôi thích mã nguồn so với Qt mà tôi nghĩ là một mớ hỗn độn để hiểu. Khi có để gỡ lỗi, có thể hiểu làm thế nào nó hoạt động dưới mui xe có thể được tốt đẹp (ngay cả khi bạn mất một số của nó khi MFC gọi các chức năng cửa sổ mà không có nguồn). Tôi không có kinh nghiệm với các framework khác nhưng tôi chỉ muốn nói không làm mất uy tín MFC quá nhanh. Nó không thực sự tuyệt vời nhưng nó không phải là xấu. – n1ckp
Chủ yếu là tôi đang cố gắng tìm giải pháp thay thế. Có một điều mà phiền tôi rất nhiều về MFC mặc dù và đó là một thực tế là bạn có thể không có vẻ để đính kèm xử lý bên ngoài với nó. Trình xử lý "Message" không chỉ nằm trong bản đồ tĩnh, chúng phải là thành viên của lớp trực quan mà bạn đang tạo. Bạn không thể tạo tường lửa trình biên dịch bằng cách có hành vi bị chi phối bởi các đối tượng ẩn bên ngoài tệp .cpp. Đóng gói thực sự không có sẵn. Cũng không phải là một fan hâm mộ của một số đối tượng được tự xóa và những người khác không ... chỉ học được rằng một ngày hôm qua. Thiếu trình quản lý bố cục cũng không tuyệt vời. –
Roberts: Vâng, tôi không hoàn toàn chắc chắn về phản đối của bạn nhưng tôi nghĩ rằng bạn có thể bỏ qua bằng cách sử dụng bản đồ tĩnh với overidding một số chức năng MFC (hãy xem http://stackoverflow.com/questions/978071/how-to-redirect -mfc-messages-to-another-object). Ngoài ra đối với các đối tượng tự xóa, tôi nghĩ rằng Qt là tồi tệ hơn về khía cạnh đó. Tôi không cố gắng bán cho bạn MFC mặc dù, tôi sẽ được hạnh phúc để có một lựa chọn tốt quá. Kinh nghiệm của tôi với Qt là từ việc tiếp quản từ các lập trình viên nghèo sử dụng nó vì vậy tôi có một chút thiên vị nhưng nó đã không thực sự thuyết phục tôi nó là tốt hơn (tôi muốn nói tương đương có thể?). – n1ckp