Je veux faire une déclaration d'une fonction externe, mais je ne peux pas le faire.Comment déclarer un pointeur (octet ^)?
Ceci est ma déclaration Delphi, qui ne compile pas.
procedure Encode(input:byte^;output:byte^;size:DWORD);cdecl;external 'blowfish.dll';
Ceci est ma déclaration C#, qui fonctionne.
[DllImport("blowfish.dll")]
public static unsafe extern void Encode(byte* input, byte* output, UInt32 size);
Mon problème: le compilateur exprects « (» après octet ^, à cause de la^.Si je fais un type mybyte = octet ^, alors comment dois-je appeler la fonction avec le premier élément dans le tableau d'octets - il ne peut donc pas compiler, parce que le type iSNT tableau « de myByte »
Vous pouvez déclarer le C# différent: public static extern vide Encode (octet [] entrée, octet [] sortie, taille UInt32); – Dykam
Que voulez-vous dire? Le paramètre doit être un pointeur, car la fonction modifie la valeur. –