J'ai une bibliothèque native (aucune source disponible) enveloppée dans le code C#.Comment appeler le code natif qui dessine dans WPF Image à partir du code C#?
La déclaration suivante C# existe:
[DllImport(DRIVER_DLL_NAME,
CallingConvention = CallingConvention.Cdecl,
EntryPoint = "RenderBitmap")]
private static extern int RenderBitmap(int hWnd);
Je dois appeler cette fonction de mon projet WPF C#.
J'ai un exemple de code de travail pour les Windows Forms:
System.Windows.Forms.PictureBox DisplayWindow;
...
RenderBitmap(DisplayWindow.Handle.ToInt32());
Et je n'ai pas trouvé comment faire avec WPF System.Windows.Controls.Image
au lieu de System.Windows.Forms.PictureBox
- il n'y a pas Handle
propriété ou quelque chose de similaire.
De plus, je trouve dans "WPF and Win32 Interoperation" la déclaration suivante: « Lorsque vous créez une fenêtre WPF, WPF crée un haut niveau HWND, et utilise un HwndSource pour mettre la fenêtre et son contenu WPF à l'intérieur du HWND Le reste. votre contenu WPF dans l'application partage ce HWND singulier. ". Il semble que la poignée HWND n'existe pas du tout pour Image
. Comment appeler le code natif qui dessine WPF Image à partir du code C#?
Ma bibliothèque native est le pilote de la caméra. Et il y a des exemples C# de fournisseur-wrapper autour du code natif, mais l'exemple utilise WindowsForms. Et mon application utilise WPF. – sergtk
Je crois que j'ai eu l'idée, vous voulez essentiellement écrire vos propres wrappers pour le WPF. Malheureusement WPF est complètement un autre cadre de présentation et l'une des différences les plus significatives que vous avez déjà observées - il n'y a pas HWND/Window pour chaque contrôle comme dans WinForms – sll
@sergdev - La solution serait de placer un System.Controls.Image dans un formulaire Win32 et placez le formulaire dans une fenêtre. Une alternative à cette solution est de contacter le vendeur et demander de l'aide. –