Bonjour,

je débute sur le dev en .NET avec l'import de méthodes win32.
Je fais un mini dev d'essai sur smartphone win Mobile 6.1.

Je veux importer une fonction de cellcore.dll (dont on trouve la doc msdn sur cette page)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
[DllImport("Cellcore.dll")]
static extern int ConnMgrEnumDestinations(uint Index, ref CONNMGR_CONNECTIONINFO connectionInfo);

Bien sûr, j'ai auparavant fait, dans ma classe, une définition de CONNMGR_CONNECTIONINFO :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
       class CONNMGR_CONNECTIONINFO
        {
            Int32 cbSize;                          // DWORD
            public ConnMgrParam dwParams = 0;      // DWORD
            public ConnMgrProxy dwFlags = 0;       // DWORD
            public ConnMgrPriority dwPriority = 0; // DWORD
            public Int32 bExclusive = 0;           // BOOL
            public Int32 bDisabled = 0;            // BOOL
            public Guid guidDestNet = Guid.Empty;  // GUID
            public IntPtr hWnd = IntPtr.Zero;      // HWND
            public UInt32 uMsg = 0;                // UINT
            public Int32 lParam = 0;               // LPARAM
            public UInt32 ulMaxCost = 0;           // ULONG
            public UInt32 ulMinRcvBw = 0;          // ULONG
            public UInt32 ulMaxConnLatency = 0;    // ULONG 
        } ;

Enfin, j'appelle cette fonction dans une méthode static de la classe :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
        unsafe public static void MakeConnection()
        {
             CONNMGR_CONNECTIONINFO toto = new CONNMGR_CONNECTIONINFO();
 
            ConnMgrEnumDestinations(0, ref toto);
 
 
        }

Reste, dans mon appli, à faire un appel à MakeConnection(), avec :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
MonNameSpace.ConnectionMgr.MakeConnection();

Lorsque j'éxécute mon programme, l'appel à
Code : Sélectionner tout - Visualiser dans une fenêtre à part
ConnMgrEnumDestinations()
provoque une erreur :
Une exception native s'est produite dans MonProjet.exe
sur mon smartphone

Un clic sur "détails" fait apparaître :
Code d'exception : 0xc0000005
Adresse d'exception : 0x0001ba10
Lecture : 0x0001ba10
Je n'ai aucune info de plus... et je ne comprends pas comment je peux voir quelle est la raison de l'exception.

Quelqu'un peut-il m'éclairer sur cela? :
- y'a-t-il un moyen de pousser un peu le debug afin de voir la cause de l'exception?
- ou quelque chose cloche-t-il tout bêtement dans mon code dans le dllimport (sur les correspondances de types peut-être?)
- ou est-ce un problème beaucoup plus précis lié à ce que je cherche à faire d'un point de vue fonctionnel? (lié à la plateforme)

Merci d'avance pour votre aide!

Nicolo011