Tôi đang sử dụng triển khai thực hiện msgpack C++. Tôi đã gặp phải một rào cản về cách đóng gói dữ liệu nhị phân. Xét về dữ liệu nhị phân Tôi có một bộ đệm của các loại sau đây: điểmmsgpack C++ thực hiện: Làm thế nào để đóng gói dữ liệu nhị phân?
unsigned char* data;
Dữ liệu biến để một mảng mà thực sự là một hình ảnh. Những gì tôi muốn làm là gói này bằng cách sử dụng msgpack. Dường như không có ví dụ về cách thực sự gói dữ liệu nhị phân. Từ các byte thô format specification được hỗ trợ, nhưng tôi không chắc chắn cách sử dụng chức năng.
tôi đã cố gắng sử dụng một vector của con trỏ ký tự như sau:
msgpack::sbuffer temp_sbuffer;
std::vector<char*> vec;
msgpack::pack(temp_sbuffer, vec);
Nhưng kết quả này trong một lỗi biên dịch vì không có chức năng mẫu cho T = std :: vector.
Tôi cũng chỉ đơn giản là thử như sau:
msgpack::pack(temp_sbuffer, "Hello");
Nhưng điều này cũng dẫn đến một lỗi biên dịch (tức là không có chức năng mẫu cho T = const char [6]
Vì vậy, tôi đã hy vọng một người nào đó có thể cho tôi lời khuyên về cách sử dụng msgpack C++ để đóng gói dữ liệu nhị phân được biểu thị dưới dạng một mảng char char
Cảm ơn Josh. Tôi nghĩ rằng tôi đã thử điều này rồi. Thật không may với giải pháp này tôi phải sao chép rất nhiều dữ liệu nhị phân (hình ảnh) từ mảng byte để vectơ của unsigned char. Đồng thời, tôi không hoàn toàn chắc chắn lý do tại sao bạn biên soạn. Vì tôi không thấy bất kỳ chức năng nào hỗ trợ đặc biệt cho char chưa được ký. Tôi sẽ tìm hiểu sâu hơn về mã nguồn và xem liệu có cách nào hiệu quả hơn tôi có thể thực hiện việc này hay không (tức là tránh sao chép). – mdb841
Ngoài ra, điều này sẽ lưu nó dưới dạng một mảng ký tự, thay vì dữ liệu nhị phân, đó là một loại khác nhau theo ... –
Chỉ cần nhìn nó lên: sử dụng một vector thay vì vector dường như sử dụng loại nhị phân thay vì mảng ... –