cuốn sách gpt4 ai đã làm

c# - Bộ đệm giao thức, cho phép C# nói chuyện với C++: vấn đề về loại và vấn đề lược đồ

In lại Tác giả: Taklimakan Thời gian cập nhật: 2023-11-03 00:21:34 28 4
mua khóa gpt4 Nike

Tôi sắp bắt đầu một dự án liên kết hai chương trình, một bằng C# và một bằng C++. Tôi đã có một chương trình c# đang hoạt động có thể nói chuyện với các phiên bản khác của chính nó. Trước khi bắt đầu sử dụng phiên bản c++, tôi nghĩ đến một số câu hỏi:

1) Tôi đang sử dụng protobuf-net v1. Tôi giả sử tệp .proto trong bộ tuần tự hóa chính xác là những gì phiên bản C++ của mẫu cần? Một tìm kiếm trên Google đã đề cập điều gì đó về trường hợp Pascal, nhưng tôi không biết điều đó có quan trọng không.

2) Tôi nên làm gì nếu một trong các loại .NET không có bản sao trực tiếp trong C++?Nếu tôi có số thập phân hoặc từ điển thì sao? Tôi có phải sửa đổi tệp .proto bằng cách nào đó và nén dữ liệu thành một hình dạng khác không? (Tôi sẽ kiểm tra tài liệu và xem liệu tôi có thể tìm ra nó không)

3) Có những cái bẫy nào khác mà người ta có thể nghĩ ra không? Định dạng nhị phân hay gì đó?

EDIT Tôi đã xem một trong các tệp nguyên mẫu. Có vẻ như những thứ cụ thể của .NET được đánh dấu là bcl.DateTime hoặc bcl.Decimal chẳng hạn. Các kiểu con được bao gồm trong định nghĩa nguyên mẫu. Tuy nhiên, tôi không chắc chắn cách xử lý các loại bcl. Chương trình C++ của tôi sẽ làm gì nếu thấy dấu thập phân?

câu trả lời hay nhất

  1. Có, các tệp proto phải tương thích. Trường hợp là về quy ước, nó không ảnh hưởng đến chức năng thực tế - chỉ cần tạo mã, v.v.

  2. Điều quan trọng không phải là liệu loại có thể so sánh trực tiếp có tồn tại trong .NET hay không mà là Bộ đệm giao thức có hỗ trợ nó hay không. Bộ đệm giao thức hầu hết còn rất thô sơ - nếu bạn muốn xây dựng thứ gì đó lớn hơn, bạn cần tạo thông báo của riêng mình.

  3. Mục đích của bộ đệm giao thức là làm cho chúng tương thích nhị phân trên mạng.không nênCó một số vấn đề... hãy đọc tài liệu để hiểu các chiến lược tạo phiên bản, v.v. Điều duy nhất tôi có thể nghĩ đến là, ít nhất là trong phiên bản Java, bạn nên đặt các trường enum là tùy chọn và tự cung cấp cho kiểu enum một giá trị 0 của "Không xác định ” nếu bạn cố gắng giải tuần tự hóa một giá trị mới chưa được mã giải tuần tự hóa hỗ trợ.

Về c# - Bộ đệm giao thức, cho phép C# nói chuyện với C++: vấn đề về loại và vấn đề lược đồ, chúng tôi đã tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/9054726/

28 4 0
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress