Articles of pinvoke

Approche préférée pour la compilation conditionnelle pour les versions 32 bits et 64 bits des types

Je suis tenu, pour une tâche donnée, d’énumérer tous les descripteurs du système. La meilleure approche que j’ai trouvée jusqu’à présent consiste à utiliser l’information NtQuerySystemInformation documentée NtQuerySystemInformation avec l’indicateur SystemHandleInformation pour le paramètre de classe. Jusqu’ici tout va bien. Cependant, en l’exécutant en mode 32 bits sous Windows 64 bits, la structure requirejse est […]

PInvoke, pointeurs et copie de tableau

Nous construisons une application sur c #, .net 4.0, sur Win7 x64, ciblant x32. Nous utilisons une bibliothèque tierce dans notre application. Nous comprenons que cette bibliothèque est écrite en C ++. Cependant, pour permettre aux développeurs c # d’utiliser cette bibliothèque, ils l’ont intégrée à l’aide de P / Invoke. C’est ainsi que nous […]

P / Invoke throw System.ExecutionEngineException

J’ai une DLL non gérée à source fermée codée en C ++ que je voulais utiliser dans une solution C #. J’ai donc créé une DLL gérée par un wrapper qui utilise P / Invoke pour appeler la fonction DLL source fermée. Cela fonctionne plutôt bien pour aucune fonction param et variables int. Cependant, je […]

Obtention de l’ID de processus d’un client connecté à un serveur de canal nommé avec C #

Je ne suis pas sûr de ne pas le voir ou quoi? J’ai besoin de connaître l’ID de processus d’un client qui s’est connecté à un serveur via un canal nommé à partir d’une instance de NamedPipeServerStream . Est-ce possible? En attendant, je suis venu avec cette fonction: [DllImport(“kernel32.dll”, SetLastError = true)] internal static extern […]

pourquoi IntPtr.size est 4 sur Windows x64?

Je pense que je devrais avoir 8 ans quand j’utilise IntPtr.Size. Cependant, j’ai toujours 4 sur x64 avec Widnows 7 x64, pourquoi?

Comment convertir une structure C ++ avec Union en C #?

Les gars, j’ai du mal à récupérer les valeurs des membres de la structure après avoir appelé une fonction dans la DLL. J’ai essayé de convertir les codes C ++ en C # mais je ne suis pas sûr que ce soit correct ou non. S’il vous plaît, aidez-moi à comprendre mes erreurs ici (s’il […]

Cliquez sur un bouton MessageBox par programme

Comme le titre l’indique, j’essaie de simuler un bouton dans un MessageBox par programme. J’ai précédemment essayé de fermer la MessageBox en trouvant son handle dans sa légende et en appliquant WM_CLOSE ou SC_CLOSE dans SendMessage() . Cependant, en raison de la présence de boutons Oui / Non, cela ne fonctionnait pas (le bouton X […]

Appel du code C à partir du code géré

J’ai actuellement une fonction C que j’aimerais utiliser dans .NET (C #). Je peux voir deux manières d’y parvenir: La compilation (je pense que cela est possible) avec / clr sur VC ++. NET, après avoir implémenté des méthodes gérées “façade” qui appellent le code C. Comstackr le code C en tant que DLL, puis […]

DLLImport Int ** – Comment faire si cela peut être fait

J’essaie d’utiliser une DLL tierce qui souhaite un int ** comme l’un des parameters de la méthode. Il décrit le paramètre comme l’adresse du pointeur qui pointera sur l’allocation de mémoire. Désolé pour toute confusion. Le paramètre est à double sens je pense. La DLL sert à communiquer avec une carte FPGA et la méthode […]

Comment puis-je diffuser des données d’un assemblage géré vers une bibliothèque native et inversement?

Comment puis-je diffuser des données (texte) d’un assemblage géré vers une bibliothèque native et les renvoyer (texte) vers l’assembly géré? Plus précisément, je souhaite exposer un System.IO.Stream quelconque du côté .NET et ( plus important encore ) un FILE * du côté natif. La signature de la méthode native doit être: FILE * foo(FILE * […]