Je souhaite appeler une ou plusieurs fonctions d'une bibliothèque native, mais je ne suis pas sûr des mappages de type. La fonction en particulier, je suis en train est actuellement comme suit, voici la petite application de la console que je suis dans Smasher:Comment invoquer cette méthode native à partir de C#
extern char *tgetstr (const char *name, char **area);
Et voici ma tentative de cartographie cette option pour utiliser dans une console .NET. Je reçois une erreur en essayant de lire ou d'écrire de la mémoire protégée.
class Program
{
[DllImport("termcap.dll")]
public static extern IntPtr tgetstr(IntPtr name, IntPtr area);
static void Main(string[] args)
{
IntPtr ptr1 = new IntPtr();
IntPtr a = tgetstr(Marshal.StringToCoTaskMemAnsi("cl"), ptr1);
Console.WriteLine(Marshal.PtrToStringBSTR(a));
}
}
TIA
Andrew
qui ne touche que l'adresse de 'ptr1' pas la valeur (l'adresse stockée à l'intérieur), donc ne fera aucune différence. De plus, la couche p/invoke le ferait automatiquement. –