如何声明指针(byte ^)?

Iva*_*nov 1 delphi

我想声明一个外部函数,但我不能这样做.

这是我的Delphi声明,它不能编译.

procedure Encode(input:byte^;output:byte^;size:DWORD);cdecl;external 'blowfish.dll';
Run Code Online (Sandbox Code Playgroud)

这是我的C#声明,它有效.

[DllImport("blowfish.dll")]
public static unsafe extern void Encode(byte* input, byte* output, UInt32 size);
Run Code Online (Sandbox Code Playgroud)

我的问题:编译器表示"("在字节^之后,因为^.如果我创建一个类型mybyte = byte ^;那么我如何用字节数组中的第一个成员调用该函数 - 然后它无法编译,因为数组不是"myByte"类型?

jqn*_*qno 5

^应该在类型名称之前吗?

procedure Encode(input:^byte;output:^byte;size:DWORD);cdecl;external 'blowfish.dll';
Run Code Online (Sandbox Code Playgroud)

此外,可能dll需要字节数组而不是指向字节的指针.所以你可能也想调整它.(在C中,数组和指针的声明方式相同.)