http://www.picklingtools.com/
có một thư viện gọi là PicklingTools mà tôi giúp duy trì mà có thể có ích: nó cho phép bạn tạo ra các cấu trúc dữ liệu trong C++ mà bạn có thể sau đó dưa/unpickle ... nó là C++, không phải C, nhưng đó không phải là một vấn đề những ngày này (giả sử bạn đang sử dụng bộ gcc/g ++).
Thư viện là thư viện C++ đơn giản (có các ví dụ về C++ và Python trong phân phối cho biết cách sử dụng thư viện trên ổ cắm và tệp từ cả C++ và Python), nhưng nói chung, có sẵn.
Ý tưởng cơ bản là thư viện PicklingTools cung cấp cho bạn cấu trúc dữ liệu "giống python" từ C++ để sau đó bạn có thể tuần tự hóa và deserialize thành/từ Python/C++. Tất cả (?) Các kiểu cơ bản: int, long int, string, None, complex, dictionarys, lists, từ điển và bộ dữ liệu được đặt hàng đều được hỗ trợ. Có rất ít móc để làm các lớp tùy chỉnh, nhưng phần đó là một chút chưa trưởng thành: phần còn lại của thư viện khá ổn định và đã hoạt động trong 8 (?) Năm.
đơn giản ví dụ:
#include "chooseser.h"
int main()
{
Val a_dict = Tab("{ 'a':1, 'b':[1,2.2,'three'], 'c':None }");
cout << a_dict["b"][0]; // value of 1
// Dump to a file
DumpValToFile(a_dict, "example.p0", SERIALIZE_P0);
// .. from Python, can load the dictionary with pickle.load(file('example.p0'))
// Get the result back
Val result;
LoadValFromFile(result, "example.p0", SERIALIZE_P0);
cout << result << endl;
}
Có tài liệu hướng dẫn thêm (FAQ và Hướng dẫn sử dụng) trên trang web.
Hy vọng điều này rất hữu ích:
Gooday,
Richie
http://www.picklingtools.com/
là tính di động rất quan trọng để ứng dụng của bạn? –
Không thực sự, vì exaile chỉ chạy trên Linux như xa như tôi biết. –