Tengo problemas para determinar la mejor manera de operar una función delphi en una matriz de bytes desde .net.Llamada a la función delphi dll desde C# que pasa en una matriz de bytes
La firma Delphi se ve así:
procedure Encrypt(
var Bytes: array of byte;
const BytesLength: Integer;
const Password: PAnsiChar); stdcall; export;
El C# código es el siguiente:
[DllImport("Encrypt.dll",
CallingConvention = CallingConvention.StdCall,
CharSet = CharSet.Ansi)]
public static extern void Encrypt(
ref byte[] bytes,
int bytesLength,
string password);
Omitiendo var
y ref
antes de la declaración matriz de bytes parecía fallar, pero es lo necesario, ya ¿Cambiaré solo el contenido de la matriz y no la matriz en sí?
También, por alguna razón por la que parece que no puede obtener la longitud de la matriz de Delphi, si quito el parámetro BytesLength
Length(Bytes)
que no va a funcionar, si añadir los parámetros, BytesLength
Length(Bytes)
empieza a funcionar, pero tiene BytesLength
un valor equivocado