La structure i2c est de la forme:
i2c.comport = 1;
i2c.WmMsgNo = WM_USER;
i2c.pfCBF = NULL; // Application Callback Function Address.
i2c.pcLogFileName = "log.txt";
Je coince un peu au niveau de la déclaration dans C#:
[DllImport("i2c32200.dll")]
private static extern int I2COpen (...
ensuite comment déclarer la structure et finalement appeler la fonction.
Merci.
PS. Pour me répondre, retirer "france." de l'adresse email
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Simon Mourier [MS]
Il faudrait la déclaration précise (.h ou .c, .cpp) pour être sûr, mais en essayant de deviner, ca pourrait être quelque chose comme
using System.Runtime.InteropServices;
[StructLayout(LayoutKind.Sequential)] public struct I2C { public int compport; // vérifier que c'est bien un 32bits public int WmMsgNo; // vérifier que c'est bien un 32bits public IntPtr pfCBF; // vérifier que comport est bien un pointeur 32bits
[MarshalAs(UnmanagedType.LPWStr)] public string pcLogFileName; ou [MarshalAs(UnmanagedType.LPStr)] public string pcLogFileName; ou
[MarshalAs(UnmanagedType.ByValTStr, SizeConst%6)] public string pcLogFileName; ou [MarshalAs(UnmanagedType.BStr)] public string pcLogFileName;
La structure i2c est de la forme: i2c.comport = 1; i2c.WmMsgNo = WM_USER; i2c.pfCBF = NULL; // Application Callback Function Address. i2c.pcLogFileName = "log.txt";
Je coince un peu au niveau de la déclaration dans C#: [DllImport("i2c32200.dll")] private static extern int I2COpen (...
ensuite comment déclarer la structure et finalement appeler la fonction.
Merci. PS. Pour me répondre, retirer "france." de l'adresse email
Il faudrait la déclaration précise (.h ou .c, .cpp) pour être sûr, mais en
essayant de deviner, ca pourrait être quelque chose comme
using System.Runtime.InteropServices;
[StructLayout(LayoutKind.Sequential)]
public struct I2C
{
public int compport; // vérifier que c'est bien un 32bits
public int WmMsgNo; // vérifier que c'est bien un 32bits
public IntPtr pfCBF; // vérifier que comport est bien un pointeur 32bits
[MarshalAs(UnmanagedType.LPWStr)] public string pcLogFileName;
ou
[MarshalAs(UnmanagedType.LPStr)] public string pcLogFileName;
ou
[MarshalAs(UnmanagedType.ByValTStr, SizeConst%6)] public string
pcLogFileName;
ou
[MarshalAs(UnmanagedType.BStr)] public string pcLogFileName;
La structure i2c est de la forme:
i2c.comport = 1;
i2c.WmMsgNo = WM_USER;
i2c.pfCBF = NULL; // Application Callback Function Address.
i2c.pcLogFileName = "log.txt";
Je coince un peu au niveau de la déclaration dans C#:
[DllImport("i2c32200.dll")]
private static extern int I2COpen (...
ensuite comment déclarer la structure et finalement appeler la fonction.
Merci.
PS. Pour me répondre, retirer "france." de l'adresse email
Il faudrait la déclaration précise (.h ou .c, .cpp) pour être sûr, mais en essayant de deviner, ca pourrait être quelque chose comme
using System.Runtime.InteropServices;
[StructLayout(LayoutKind.Sequential)] public struct I2C { public int compport; // vérifier que c'est bien un 32bits public int WmMsgNo; // vérifier que c'est bien un 32bits public IntPtr pfCBF; // vérifier que comport est bien un pointeur 32bits
[MarshalAs(UnmanagedType.LPWStr)] public string pcLogFileName; ou [MarshalAs(UnmanagedType.LPStr)] public string pcLogFileName; ou
[MarshalAs(UnmanagedType.ByValTStr, SizeConst%6)] public string pcLogFileName; ou [MarshalAs(UnmanagedType.BStr)] public string pcLogFileName;
La structure i2c est de la forme: i2c.comport = 1; i2c.WmMsgNo = WM_USER; i2c.pfCBF = NULL; // Application Callback Function Address. i2c.pcLogFileName = "log.txt";
Je coince un peu au niveau de la déclaration dans C#: [DllImport("i2c32200.dll")] private static extern int I2COpen (...
ensuite comment déclarer la structure et finalement appeler la fonction.
Merci. PS. Pour me répondre, retirer "france." de l'adresse email