maladebe
Messages postés18Date d'inscriptionjeudi 8 mai 2003StatutMembreDernière intervention27 mars 2009
-
19 févr. 2009 à 15:52
maladebe
Messages postés18Date d'inscriptionjeudi 8 mai 2003StatutMembreDernière intervention27 mars 2009
-
20 févr. 2009 à 07:50
Salut,
Je dois récupérer d'une fonction, dans une dll écrite en C/C++, un pointeur sur une structure. Je pensais avoir trouvé comment récupérer les informations du pointeur renvoyé par la fonction décrite ci-dessous:
[
DllImport
(
@"MADLL.dll"
, EntryPoint =
"InitImage"
, SetLastError =
true
, CharSet =
CharSet
.Auto)]
public
static
extern
unsafe
IntPtr
InitImage(
IntPtr
ptrRaw,
int
width,
int
height,
int
resolution,
int
rank,
out
IntPtr
ptrOut);
Ci-dessous, la structure queje dois récupérer :
[
StructLayout
(
LayoutKind
.Sequential)]
class
ErrorContext
{
[
MarshalAs
(
UnmanagedType
.I4)]
public
T__FPQC_Returned_Code
returnedCode;
[
MarshalAs
(
UnmanagedType
.LPStr, SizeConst = 100)]
public
String
errorMessage;
[
MarshalAs
(
UnmanagedType
.LPStr, SizeConst = 256)]
public
String
errorFile;
[
MarshalAs
(
UnmanagedType
.U4)]
public
UInt32
errorLine;
}
Mais lors de l'exécution des instructions suivantes :
maladebe
Messages postés18Date d'inscriptionjeudi 8 mai 2003StatutMembreDernière intervention27 mars 2009 19 févr. 2009 à 16:29
Salut Lutinore,
Voici le prototype de la structure :
typedef
struct {T__FPQC_Returned_Codes m__errorcode;
T__Char m__errormessage[150];
T__Char m__errorfile[256];
T__UInt32 m__errorline;
}T__FPQC_Struct_Error_Context;
Alors oui, ce sont bien des tableaux de char mais avec
MarshalAs
(
UnmanagedType
.LPStr, SizeConst = 256)], il devrait pas poser de souci? Enfin je pense.