lincy 发表于 2015-2-6 14:05:34

关于绑定窗体句柄的问题

我的c#视频客户端,有两个form,在第一个form中创建第二个form并打开,在该form加载时绑定句柄窗体SystemSetting.Init(this.Handle);
现在遇到的问题是:当close该窗体后,又在第一个form中重新创建第二个form的一个实例并打开后,该实例不能接收到进入房间等消息。也就是第二次创建的窗体不能接受到消息。
我的理解是,第二次创建,form加载时重新绑定了窗体句柄,应该是可以接收到消息的
这是为啥涅?请教了

lincy 发表于 2015-2-6 14:33:49

我找到原因了,是我在关闭form时没有调用AnyChatCoreSDK.Release();

廖斌 发表于 2015-2-6 14:49:17

lincy 发表于 2015-2-6 14:33
我找到原因了,是我在关闭form时没有调用AnyChatCoreSDK.Release();

哦,您是想在第一个窗体使用anychat完成之后,然后在第二个窗体重新初始化anychat吗?
建议您在一个anychat窗体上面初始化anychat就行了,在一个窗体上面接收消息。如果第二个窗体想用使用anychat消息的话,第一个窗体委托给第二个窗体就行了。

lincy 发表于 2015-2-9 14:04:24

廖斌 发表于 2015-2-6 14:49
哦,您是想在第一个窗体使用anychat完成之后,然后在第二个窗体重新初始化anychat吗?
建议您在一个anyc ...

我是在一个窗体上使用消息,只是这个窗体需要被反复关闭和创建,每次创建就要重新绑定窗体句柄。我在关闭窗体时没有调用AnyChatCoreSDK.Release(),所以第二次创建窗体后绑定就不成功。现在已经可以了。谢谢。

一万 发表于 2015-2-13 22:50:04


我遇到一样的问题, 但是稍微不一样我是使用了VC封装成了ActiveX控件. 然后集成到一个 .net 应用程序内部, 结果第二个控件的事件全给了第一个控件了. 怎么搞???

Init的时候制定的NULL句柄, 如果换成控件的句柄会有效么???

搞了一天了才找到是这个问题, 但是还不知道如何解决呢.

给点 建议呗.


一万 发表于 2015-2-13 23:16:16


因为我负责开发的ActiveX控件, 而上层应用是其它公司的人开发的, 遵循以前(使用海康卡)的接口. 基于IE调用是没没问题的, 如果2个控件在2个IE的标签下是没问题的可以一个采集一个播放.

现在系统升级到C#下面, 发现了问题在一个进程控件内咱们的API回调Notify消息的时候全给第一个初始化的控件了, 导致第二个控件运行异常.

admin 发表于 2015-2-14 10:50:17

您好,您是两个进程每个进程一个控件,还是一个进程里面有两个控件?

一万 发表于 2015-2-14 11:42:50


是一个C#写的进程里面有2个一样的控件, 其中一个采集, 另外一个播放. 然后Notify用的回调函数处理消息, 结果消息全给了第一个控件了, 第二个控件就处理异常了, 我还没有试传送窗口句柄, 然后处理窗口消息那样处理不知道行不行的呢. 底层的控件使用的是VC6实现的.

现在就想找到个办法来处理这个问题.

admin 发表于 2015-2-14 11:47:45

是一个C#写的进程里面有2个一样的控件, 其中一个采集, 另外一个播放
您好,采集是用AnyChat采集,播放也是用AnyChat来播放吗?

一万 发表于 2015-2-14 12:12:04


是的, 都是用AnyChat写的控件. 采集是用一个, 播放使用另外一个, 2个控件本身差别很小的, 一个先启动, 另外一个后启动, 只是设置的昵称和视频语音控制不一样.
页: [1] 2
查看完整版本: 关于绑定窗体句柄的问题