首页 文章

在c#中创建HWND

提问于
浏览
-1

我导入了一些用于创建实时视频的dll . 这里myprob是我有c代码

int PLAYER_SDK_SPEC CreatePlayer(HWND hWndParent,RECT&rectPlayer,const char * szWndTitle);

在c#我有导入dll喜欢

[DllImport(“PlayerLib”)] public static extern int CreatePlayer(IntPtr Handle,Rectangle RECT,StringBuilder szWndTitle);

我称之为CreatePlayer的函数(this.Handle,rect,str6);

但它会产生一些未处理的异常......请帮我解决这个问题,提前谢谢

1 回答

  • 1

    我不认为P / Invoke声明是正确的 . 据我所知,它应该是:

    [DllImport("PlayerLib")] 
    public static extern int CreatePlayer(IntPtr Handle, ref Rectangle RECT, String szWndTitle);
    

    原始版本引用了一个矩形,因此您应该这样做 . 另外我不确定 Rectangle 类型和 RECT 类型的C是否相等 . 也许你必须在C#中声明一个 struct RECT .

    看看pinvoke.net . 在那里你会找到带有 RECT 参数的函数,你会在那里找到关于如何将矩形传递给C函数的提示 .

相关问题