Import DLL struct Attempted to read or write protected memory. This is often an
anbariota
Messages postés6Date d'inscriptionlundi 26 novembre 2007StatutMembreDernière intervention19 juillet 2010
-
19 juil. 2010 à 17:08
Lutinore
Messages postés3246Date d'inscriptionlundi 25 avril 2005StatutMembreDernière intervention27 octobre 2012
-
21 juil. 2010 à 16:38
Bonjour,
J'ai un Outil C# qui importe une DLL C.
En effet, j'ai une exception "Attempted to read or write protected memory. This is often an indication that other memory has been corrupted".
J'ai besoin d'une aide !!
Déjà, je vous montre la fonction en C avec une structure.
cs_coq
Messages postés6349Date d'inscriptionsamedi 1 juin 2002StatutMembreDernière intervention 2 août 2014101 19 juil. 2010 à 17:33
Bonjour,
A vue de nez je dirais que la déclaration de HorizUnit n'est pas bonne.
Si je ne me trompe pas, la structure C déclare un tableau de 48 chars, pas un tableau de chaines de caractères.
A priori ça donnerait plutot quelque chose de ce genre :
[MarshalAs(UnmanagedType.ByValTStr, SizeConst=48)]
public string HorizUnit;
anbariota
Messages postés6Date d'inscriptionlundi 26 novembre 2007StatutMembreDernière intervention19 juillet 2010 19 juil. 2010 à 17:51
Merci Coq c'est vrai ce que tu as dis mais j'ai eu cet erreur lorsque j'ai mis [MarshalAs(UnmanagedType.ByValTStr, SizeConst=48)]
Cannot marshal field 'BlockFormat' of type 'WF_DESCRIPTOR': Invalid managed/unmanaged type combination (Arrays fields must be paired with ByValArray or SafeArray).
C'est pour ca j'ai utilisé
[MarshalAs(UnmanagedType.ByValArray,SizeConst = 48)]