导入一些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);但它会产生一些未处理的异常......请帮我解决这个问题 提前谢谢
答案 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 ++函数的提示。