在c#中创建HWND

时间:2009-10-28 09:05:48

标签: c#

导入一些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 个答案:

答案 0 :(得分: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 ++函数的提示。