?? d183.bmp.txt
字號(hào):
要求在類(lèi)中添加其他功能代碼。
2)包含OPC標(biāo)準(zhǔn)庫(kù)文件。
本例除了上述客戶(hù)端兩個(gè)接口實(shí)現(xiàn)的程序部分外,和實(shí)例8-樣還需要包含OPC標(biāo)準(zhǔn)
庫(kù)文件:
#include "opcda_i.c"
#include "opcda.h"
#include "opccomn_i.c"
#include "opccomn.h"
#include "opcda_cats.c"
,/OPC數(shù)據(jù)存取接口
/,OPC數(shù)據(jù)存取2.0頭文件
,,OPC公共接口定義
/,OPC公共頭文件
,/OPC數(shù)據(jù)存取組件分類(lèi)(1.0和2.0)
具體方法與實(shí)例8相同。
3)在類(lèi)CServerInfoView中定義如下成員變量。
IOPCServer *m_opcServer;
IOPCGroupStateMgt *m_opcGroup;
DWORD dwConnection;
OPCHANDLE groupHandle;
OPCCallback* callbackCP;
OPCShutdown *shutdownCP;
DWORD dwShutdownConnection;
//OPC數(shù)據(jù)存取服務(wù)器對(duì)象
j{組對(duì)象
//響應(yīng)數(shù)據(jù)變化的連接點(diǎn)
//組對(duì)象的句柄
//響應(yīng)數(shù)據(jù)變化的對(duì)象
//響應(yīng)服務(wù)器關(guān)閉的耐象
//響應(yīng)服務(wù)器關(guān)閉的連接點(diǎn)
4)調(diào)用AfxOlelnit初始化OLE動(dòng)態(tài)鏈接庫(kù)。
if ( !AfxOleLnit0)
retum FALSE;
該初始函數(shù)可放在COpcClientSpyApp::lnitlnstance()函數(shù)中。
5)在類(lèi)CServerInfoView中初始化成員變量和計(jì)數(shù)器。
CS erverlnfoView::CServerInfoView0
: CFomNiew(CServerInfoView::IDD)
{
callbackCP=new OPCCallbackObject;//創(chuàng)建對(duì)象
callbackCP->AddRef0;
shutdownCP=new OPCShutdownObject;,/創(chuàng)建對(duì)象
shutdownCP->AddRef0;
AfxOleLockApp();//增加OPCCallbackObject和OPCShutdownObject的計(jì)數(shù)。
)
6)連接某一個(gè)OPC服務(wù)器。
LPUNKNOWN pUnkn=NULL;
HRESULT hr;
hr=CoCrestelnstance(clsid,NULL,CLS CIX_ALL,IID_Iunkown,(LPVOID*)&pUnkn);
/clsid爹數(shù)含義同實(shí)例8。
183
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -