将RTC Client API SDK v1.3范例改成.NET下运行

昨天将RTC Client  API SDK v1.3看了看,为了尽快掌握其概貌,现看看他的范例,发现有个VB6的范例比较简单,入门级,于是便想打开看看,用Visual Studio .NET 2003想将该范例转换为.Net下,但报告说无rtccore.dll v1.0版本,转换无法完成。原来,SDK中的范例是在SDK v1.0下做的,打开vb6窗体文件frmMain.frm文件看看,发现很简单,于是干脆手工转换了。

一、在Visual Studio .NET2003下新建一VB.NET工程,选择VB下的Windows应用程序。

二、将窗体form1命名为frmMain(这也是我经常用的第一个主窗体名字),并引入interop.rtccore.dll对象。

这个过程很简单了。

三、在应用程序类定义之前,引入rtccore.dll名字空间:

Imports RTCCore

(注:这个命名与第一篇文章(编译interop.rtccore.dll)中命令行的参数有关,并不一定全都是这个名字)。

四、查看frmMain.frm中界面的定义,根据这些定义自己绘制界面。

需要注意的地方:

1、vb6中的frame在.NET下没有了,可以用panel或者groupbox控件代替,最好用groupbox控件,可以但到标题。

2、vb6中的lable、form等控件的属性caption在.NET下用text属性代替了。

3、vb6中的option控件在.NET下用radiobutton控件代替。

4、.NET不支持Attribute定义,把相关的语句Attribute g_objRTCClientWithEvents.VB_VarHelpID = -1去掉即可。该语句主要是和rtc client组件的帮助有关。

5、.NET不支持控件数组(这是老套的VB6代码),可以用控件循环或者干脆将11个电话号码按钮分开写。

五、讲frmMain.frm中的除去窗体定义的代码全部拷贝到.NET窗体下的frmMain.vb中,注意拷贝的顺序。

六、修改拷贝过来的代码。

1、常数定义拷贝在Inherits System.Windows.Forms.Form语句后面,并注释掉Attribute定义一行。

2、出现很多提示,报告说是变量未定义,如RTCLM_BOTH,实际上是没用引入相关命名空间,可以修改成RTC_LISTEN_MODE.RTCLM_BOTH,或者引入RTC_LISTEN_MODE名字空间。

3、根据修改的控件再修改相关代码和控件属性定义代码。

4、最好将on error goto checkerror语句改成try...Catch ex As Exception...end try形式。

5、窗口句柄语句可以修改成如下形式:

hwndParent = Me.Handle.ToInt64,这是因为.NET下VB不支持hWnd成员了。

七、修改完所有代码后,编译生成一个可执行文件。

八、为了在本机上运行,将生成的可执行文件连同interco.rtccore.dll文件拷贝到另一个目录,并运行可执行文件。同时在.NET环境中运行工程,于是得到2个范例的内存进程,可以用2个范例进程相互通信了(我是在本机上实现的,能够很清晰地看到摄像头传递的图像-只是两幅图像是一模一样的)。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值