Trong C# PInvoke, làm thế nào để vượt qua một bộ đệm chuỗi để các DLL C điền vào nó và trả về? Tuyên bố PInvoke sẽ là gì?C# PInvoke ra tuyên bố dây
Việc kê khai chức năng C là
int GetData(char* data, int buflength);
Trong C#, tôi đã tuyên bố nó như
[DllImport(DllName)]
static extern Int32 GetData([MarshalAs(UnmanagedType.LPStr)]StringBuilder receiveddata, Int32 buflen);
Is it correct? Tôi đang chuyển biến StringBuilder như thế này
int bufferLength = 32;
StringBuilder data = new StringBuilder(bufferLength);
int result = GetData(data, bufferLength);
Tôi muốn biết nó có chính xác hay không?
Cảm ơn
Nó là đúng nếu nó hoạt động. Không có lý do rõ ràng nó không nên hoạt động. –