Question

Je vais avoir des problèmes appelant une fonction de delphi de C # (tentative de lire ou d'écrire la mémoire protégée), et je me demandais ce que devrait être la bonne façon d'appeler la méthode. La signature de la fonction Delphi est la suivante:

procedure methodToCall(
    aFirstParameter: Widestring; 
    var aSecondParameter: Widestring
    ); stdcall;

Quelle est la bonne façon d'appeler cette méthode à partir de C #?

Était-ce utile?

La solution

Le WideString est compatible avec COM BSTR et donc le placier .net devrait être en mesure de consommer assez heureux:

[DllImport(@"test.dll")]
private static extern void methodToCall(
    [MarshalAs(UnmanagedType.BStr)]
    string aFirstParameter,
    [MarshalAs(UnmanagedType.BStr)]
    ref string aSecondParameter
);
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top