5
デルファイ関数を.netからバイト配列で操作する最も良い方法を考え出すのに問題があります。デルファイdll関数をC#からバイト配列で渡します。
デルファイシグネチャは次のようになります。
procedure Encrypt(
var Bytes: array of byte;
const BytesLength: Integer;
const Password: PAnsiChar); stdcall; export;
C#のコードは次のようになります。
ので、バイト配列の宣言が失敗するように見えたが、それが必要とされる前に、var
と
ref
を省略
[DllImport("Encrypt.dll",
CallingConvention = CallingConvention.StdCall,
CharSet = CharSet.Ansi)]
public static extern void Encrypt(
ref byte[] bytes,
int bytesLength,
string password);
私は配列の内容だけを変更し、配列自体は変更しないでしょうか?
また、何らかの理由で私は動作しませんLength(Bytes)
よりBytesLength
パラメータを削除した場合、私は仕事にBytesLength
パラメータ、Length(Bytes)
開始を追加しますが、BytesLength
持っている場合、デルファイの配列の長さを得るように見えることはできません間違った値。