当前位置:首页 > OPC服务器与客户程序开发指南
图2.9向接口添加属性
完成了方法和属性的添加后,向导向.idl文件添加了方法和属性的定义。
interface IBeepCnt : IDispatch {
[id(1), helpstring(\Beep();
[propget, id(0), helpstring(\Count\ HRESULT Count([out, retval] long *pVal);
[propput, id(0), helpstring(\Count\ HRESULT Count([in] long newVal);
};
BeepCnt.h 包含了三个新函数的定义,BeepCnt.cpp 文件包含了这些函数的框架。
STDMETHODIMP CBeepCnt::Beep() {
// TODO: Add your implementation code here return S_OK;
}
STDMETHODIMP CBeepCnt::get_Count(long *pVal) {
// TODO: Add your implementation code here return S_OK;
}
STDMETHODIMP CBeepCnt::put_Count(long newVal) {
// TODO: Add your implementation code here return S_OK;
}
为了让创建的组件可以做一些我们能感觉到的事情,需要添加一些代码,首先,为CBeepCnt类添加一个计数器,并且在CBeepCnt()构造函数中把它初始化为1。
long cBeeps;
CBeepCnt() : CBeeps(1) { }
接着编写一部分代码在CBeepCnt的方法里。注意属性有两个功能,一个是设置计数器(p
ut_Count),一个是获得计数器(get_Count)。
STDMETHODIMP CBeepCnt::Beep() {
for (int i = 0; i < cBeeps; i++)
{
MessageBeep((UINT) -1); Sleep(1000); }
return S_OK; }
STDMETHODIMP CBeepCnt::get_Count(long *pVal) {
*pVal = cBeeps; return S_OK;
}
STDMETHODIMP CBeepCnt::put_Count(long newVal) {
cBeeps = newVal; return S_OK;
}
现在一个简单功能的组件诞生了,它可以用来发出嘟嘟声。 2.6 测试组件
如何来测试这个组件呢?一般而言,采用Visual Basic是个不错的选择,可以快速的编写客户程序来实现测试。可以编写一个图2.10所示的对话框程序来测试它。
图2.10测试界面
采用Visual Basic 6.0生成的代码如下:
Dim BeeperCnt As BeepCnt Private Sub Beep_Click() Text1 = BeeperCnt BeeperCnt.Beep
End Sub
Private Sub Set_Click() BeeperCnt = Val(Text1) Text1 = BeeperCnt
End Sub
Private Sub Form_Load()
Set BeeperCnt = New BeepCnt Text1 = BeeperCnt
End Sub
需要注意的是需要引用BeepCntMod 1.0 Type Library。
图2.11引用库
运行这个程序,是不是听到了嘟嘟声,而且可以设置嘟嘟声的次数,类似的,你可以添加更多的属性和方法,来增强这个组件的功能,是不是很简单呢。
重点:何为ATL?何为类厂?COM对象如何创建?如何测试COM组件功能?
第4章OPC客户程序实例
关键字:同步 异步 VC VB 4.1 OPC客户程序开发环境
无论开发者还是最终使用者都必须安装OPC代理/存根(Proxy/Stub)DLL,并进行环境设置。这些文件(opc_aeps.dll,opccomn_ps.dll,
opchda_ps.dll,opcproxy.dll,aprxdist.exe,opcenum.exe)可以从OPC基金会网站下载,也可以在http://www.opc-china.com下载。所有文件必须安装在客户端机器和服务器端机器上。
安装步骤如下:
1.复制所有的文件到你的Windows系统路径,如: copy opcproxy.dll c:\\winnt\\system32 copy opccomn_ps.dll c:\\winnt\\system32 copy opc_aeps.dll c:\\winnt\\system32 copy opchda_ps.dll c:\\winnt\\system32 copy aprxdist.exe c:\\winnt\\system32 copy opcenum.exe c:\\winnt\\system32 2.安装代理DLL。 REGSVR32 opcproxy.dll REGSVR32 opccomn_ps.dll REGSVR32 opc_aeps.dll REGSVR32 opchda_ps.dll
3.如果aprxdist.dll不存在,可以运行aprxdist.exe生成aprxdist.dll。 4.安装opcenum.exe
共分享92篇相关文档