Tôi có một ứng dụng C++ khá lớn (trên Windows, không có nền tảng nào khác được lên kế hoạch), hiện đang lưu trữ tất cả các cài đặt (thậm chí một số loại địa chỉ) trong Windows registry.Thực hành tốt nhất để lưu trữ cài đặt
Đôi khi điều này là bất tiện, vì người dùng gặp khó khăn khi thay đổi mục trong sổ đăng ký. Tôi muốn có cài đặt được phiên bản, vì vậy, cài đặt luôn khớp với mã hiện tại. Tại thời điểm chúng tôi phiên bản reg-tập tin, nhưng bạn không bao giờ chắc chắn, nếu tất cả các tập tin reg đã được thêm vào các máy mục tiêu. Với C#, bạn có thể xác định các giá trị mặc định trong app.config, nhưng không ghi đè lên các thiết lập hiện có. Tôi không biết, nếu một cơ chế hoặc thư viện như vậy tồn tại cho C++.
Tôi muốn có "tính năng" sau:
- Cài đặt có thể được phiên bản
- cập nhật đơn giản trên máy mục tiêu (có thể được thực hiện bằng cách sử dụng)
- Đảm bảo rằng trên bản cập nhật chỉ thiết lập mới được thêm vào và không có cài đặt hiện có nào bị ghi đè bằng giá trị mặc định
- Thay đổi cài đặt đơn giản cho người dùng
- Quy trình làm việc tương tự trong Win XP và Win 7
Theo như tôi nhìn thấy nó, có 3 khả năng để lưu trữ các thiết lập trên Windows:
- Registry tập tin
- Ini
- tập tin XML Chỉ
một ứng dụng của chúng tôi bộ sử dụng Qt vào lúc này, nhưng Boost sẽ có sẵn.
Đối với địa chỉ, chúng tôi sẽ đặt chúng vào một số loại sổ địa chỉ XML, nhưng đối với các cài đặt khác, chúng tôi không chắc chắn, thực tiễn tốt nhất là gì.
tôi sẽ đề nghị lựa chọn thay thế khác: YAML/JSON cho con người định dạng có thể đọc được, SQLite để nhúng đơn giản. Về các tệp 'ini', bạn có thể quan tâm đến [Cách phân tích tệp ini với Boost] (http://stackoverflow.com/questions/6175502/how-to-parse-ini-file-with-boost). –
+1 cho tệp Boost/ini, nếu bạn có thể KI SS. – DevSolar
Nếu bạn cần nhiều lớp vùi, tôi sẽ đi cho các tệp XML/JSON. Nếu không, INI có thể là giải pháp đơn giản nhất. – Morwenn