4 votes

Créer une passerelle C++ en mode mixte de C à C# ?

J'espère que quelqu'un pourra m'aider sur ce point. Je suis principalement un développeur C#, donc mon C et C++ sont mauvaises. J'ai une dll en C natif qui est un plugin d'une application application plus grande. Je compile cette dll pour Windows sur Linux en utilisant gcc. en utilisant gcc.

Dans la dll native, lorsque je crée une D3DSurface, je veux appeler une fonction dans une dll C++ en mode mixte et y passer le pointeur vers la surface avec un avec un Hwnd/handle. Ce Mixed Mode C++ devrait ensuite appeler mon code géré C# géré.

Par exemple, en C, je veux faire ce qui suit ;

Hwnd handle;
LPDIRECT3DSURFACE d3dtarg;
SurfaceCreated(handle, d3dtarg);

En C#, je veux que cet appel soit effectué à partir de l'assemblage en mode mixte.

public static class D3DInterop
{
    public static void SurfaceCreated(IntPtr handle, IntPtr surface)
    {
        //do work
    }
}

Puisque je suis nul en C++, je veux juste savoir si quelqu'un peut me donner une exemple de ce que je dois coder pour la dll en mode mixte. J'aimerais également de ne pas avoir à compiler la dll en mode mixte avec les en-têtes directx, donc donc y a-t-il un moyen de transformer le LPDIRECT3DSURFACE 'C' en un pointeur générique ? générique ? En C#, j'utilise simplement l'IntPtr de toute façon.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X