Tôi đang gặp khó khăn trong việc tìm ra cách tốt nhất để có chức năng delphi hoạt động trên một mảng byte từ .net.Gọi hàm delphi dll từ C# đi qua trong mảng byte
Chữ ký delphi trông như thế này: Mã
procedure Encrypt(
var Bytes: array of byte;
const BytesLength: Integer;
const Password: PAnsiChar); stdcall; export;
C# trông như thế này:
[DllImport("Encrypt.dll",
CallingConvention = CallingConvention.StdCall,
CharSet = CharSet.Ansi)]
public static extern void Encrypt(
ref byte[] bytes,
int bytesLength,
string password);
Bỏ var
và ref
trước khi khai báo mảng byte dường như thất bại, nhưng nó đòi hỏi từ Tôi sẽ chỉ thay đổi nội dung của mảng chứ không phải chính mảng đó?
Ngoài ra, đối với một số lý do tôi dường như không thể có được chiều dài của mảng trong delphi, nếu tôi loại bỏ các tham số BytesLength
hơn Length(Bytes)
sẽ không làm việc, nếu tôi thêm BytesLength
tham số, Length(Bytes)
bắt đầu làm việc nhưng BytesLength
có một giá trị sai.