Chỉ là cách các byte được kết hợp để "mã hóa" dữ liệu?Sự khác nhau giữa một chuỗi COM (BSTR) và một chuỗi .NET là gì?
Tôi tò mò vì tôi tự hỏi làm thế nào một RCW tự động lấy một chuỗi .NET và biến nó thành một COM BSTR. Tôi đoán nó chỉ tạo thành một COM BSTR hợp lệ được chuyển đổi từ chuỗi .NET.
Liên quan: Tôi có thể tạo BSTR hợp lệ của riêng mình bằng cách sử dụng loại byte trong .NET không?
Cảm ơn joncham . Rất hữu ích. Tôi đoán tôi chỉ tự hỏi điều gì sẽ khác biệt nếu tôi kiểm tra các bit và byte. Cả hai đều được lưu trữ ở đâu đó. Cả hai đều đại diện cho một cái gì đó. Không phải họ chỉ khác nhau bit và byte để đại diện cho cùng một điều (một chuỗi ký tự?) – richard
Có, tất cả dữ liệu chỉ là byte ;-). Vấn đề là ai phân bổ/deallocates những byte, và các quy ước được sử dụng khi đặt ra những byte. Ví dụ, khi phân bổ một BSTR bạn không thực sự lấy một con trỏ đến đầu của bộ nhớ được cấp phát. Con trỏ của bạn là 4 byte vào không gian được phân bổ, vì bốn byte đầu tiên lưu trữ độ dài của chuỗi. – joncham
@Richard DesLonde: yea, chúng là cả hai mảng ký tự. Tuy nhiên, bạn không thể sử dụng bất kỳ chuỗi ký tự nào làm 'System.String', vì bất kỳ hàm tạo nào cho' System.String' sẽ sao chép mảng ký tự vào một vị trí bộ nhớ khác. – codekaizen