誰かがこれで私を助けてくれることを願っています。私は主に C# 開発者なので、C と C++ のスキルは低いです。私は、より大きなアプリケーションのプラグインであるネイティブ C dll を持っています。gccを使用して、Linux上のWindows用にこのdllをクロスコンパイルします。
D3DSurface を作成するときにネイティブ dll で、混合モード C++ dll で関数を呼び出し、Hwnd/ハンドルと共にサーフェスへのポインターを渡したいと考えています。その混合モード C++ は、私の C# マネージ コードを呼び出す必要があります。
例として、CI で次のことを行いたいとします。
Hwnd handle;
LPDIRECT3DSURFACE d3dtarg;
SurfaceCreated(handle, d3dtarg);
C# では、これを混合モード アセンブリから呼び出したい
public static class D3DInterop
{
public static void SurfaceCreated(IntPtr handle, IntPtr surface)
{
//do work
}
}
私は C++ が苦手なので、混合モード dll のコーディングに必要なものの例を誰かが教えてくれるかどうか知りたいだけです。また、混合モードのdllをdirectxヘッダーでコンパイルする必要がないようにしたいので、「C」LPDIRECT3DSURFACEを汎用ポインターにキャストする方法はありますか? C# では、とにかく IntPtr を使用します。