我想声明一个外部函数,但我不能这样做.
这是我的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"类型?
不^应该在类型名称之前吗?
procedure Encode(input:^byte;output:^byte;size:DWORD);cdecl;external 'blowfish.dll';
Run Code Online (Sandbox Code Playgroud)
此外,可能dll需要字节数组而不是指向字节的指针.所以你可能也想调整它.(在C中,数组和指针的声明方式相同.)
| 归档时间: |
|
| 查看次数: |
1957 次 |
| 最近记录: |