Articles of pinvoke

Création d’un fichier .dll C ++ de base pour p / invoke en C #

Je suis un programmeur C # et, malheureusement, en raison de mon âge et de mon expérience, je n’avais pas le luxe de pouvoir passer à l’ère de la programmation C ++ dans mon apprentissage – c’est tellement mystérieux et nouveau pour moi. Pas vraiment ici pour débattre de l’importance d’apprendre à apprendre cela ou […]

Comment passer un pointeur de fonction de C # à une DLL C ++?

La fonction définie dans la DLL C ++ est: static double (*Func1)(double); EXTERN_C __declspec(dllexport) __stdcall double TestDelegate(double (*fun)(double)) { Func1 = fun; return Func1(25.0); } void My_Real_purpose() { SomeClass a; a.SetFunction(Func1);//Define behaviour of a by C# in runtime a.DoSomething();//Even I want it runs in another thread! } Et j’ai essayé de l’appeler en C # […]

Envoi du message CTRL-S à une fenêtre

Je veux enregistrer une fenêtre TextPad en utilisant le code C #; Je peux trouver le handle de la fenêtre mais je ne sais pas comment envoyer CTRL – S à cette fenêtre. Je veux utiliser l’API P / Invoke pour y parvenir. En outre, cette fenêtre TextPad sera inactive, car mon application sera active […]

P / Invoke sur les fenêtres 64 bits nécessite-t-il des signatures différentes de celles sur 32 bits?

Lorsque je crée une signature faisant référence à user32.dll par exemple, dois-je la construire avec user64.dll si la cible est un ordinateur 64 bits? [DllImport(“user32.dll”, CharSet = CharSet.Auto)] public static extern bool ChangeClipboardChain( IntPtr hWndRemove, IntPtr hWndNewNext); Pour le moment, ce n’est pas un problème car je ne cible que le 32 bits en raison […]

Comment appeler l’API Windows

Dupliquer possible: API Windows et langages .net Je souhaite appeler une API Windows native à partir du .NET Framework. Je souhaite pouvoir facilement appeler les API natives à partir d’une couche de haut niveau, comme les autres API .NET. Veuillez vous reporter à toute ressource que vous connaissez. Toute aide serait appréciée.

PInvoke DLL en C #

Je veux passer une structure à la fonction C et j’écris le code suivant. Lorsque je l’exécute, la première fonction – Foo1 fonctionne, puis la fonction Foo obtient une exception. Pouvez-vous m’aider à comprendre quel est le problème? … Le code C: typedef struct { int Size; //char *Array; }TTest; __declspec(dllexport) void Foo(void *Test); __declspec(dllexport) […]

c ++ Obtenir des données de pixels brutes à partir de hbitmap

Je suis assez nouveau pour utiliser les appels p / invoke et je me demande si quelqu’un peut me guider sur la façon de récupérer les données de pixels brutes (unsigned char *) depuis un hbitmap. C’est mon scénario: Je charge un object Bitmap .NET sur le côté C # et l’envoie via IntPtr à […]

Passage de bitmap de c # à c ++

J’ai une fonction de traitement d’image écrite en C ++ basée sur opencv. Dans mon application wpf, j’ai utilisé la bibliothèque AForge pour accéder à une webcam et la mettre à jour sur l’interface utilisateur. C’est la fonction pour gérer les images neuves. void UI_NewFrame(object sender, NewFrameEventArgs eventArgs) { try { System.Drawing.Bitmap bitmapFrame = (Bitmap)eventArgs.Frame.Clone(); […]

Obtenez un tableau de structures de la DLL native à l’application c #

J’ai un projet C # .NET 2.0 CF dans lequel j’ai besoin d’appeler une méthode dans une DLL C ++ native. Cette méthode native renvoie un tableau de type TableEntry . Au moment où la méthode native est appelée, je ne sais pas quelle sera la taille du tableau. Comment puis-je obtenir la table de […]

Renvoyer une chaîne de delphi dll à l’appelant C # en 64 bits

J’ai une application C # qui appelle une dll native Delphi en utilisant le code suivant: C # [DllImport(“NativeDLL.dll”, CharSet = CharSet.Unicode, CallingConvention = CallingConvention.StdCall)] public static extern int GetSsortingng(ssortingng out str); Delphes function GetSsortingng(out a: PChar): Integer; stdcall; begin a := PChar(‘abc’); Result := 1; end; qui fonctionne très bien dans une application 32 […]