樓宇自動(dòng)化系統(tǒng)使用ATL實(shí)現(xiàn)COM接口的編程!

      欄目:行業(yè)動(dòng)態(tài) 作者:三水智能化 發(fā)布時(shí)間:2020-04-27 關(guān)鍵詞: 樓宇自動(dòng)化系統(tǒng)
      分享到:
      ?在樓宇自動(dòng)化系統(tǒng)的系統(tǒng)集成中應(yīng)用OPC(OLE for process control)技術(shù)可以很方便的實(shí)現(xiàn)分布式計(jì)算平臺(tái)的過(guò)程,有利于軟件互連,從而形成一個(gè)開(kāi)放性系統(tǒng)。 Microsoft提出的ATL是一個(gè)基于C++平臺(tái)的框架,主要用于M icrosoft的組件對(duì)象模型(COM)的軟件開(kāi)發(fā)。典型的OPC客戶機(jī)/服務(wù)器關(guān)系如圖2所示。

      樓宇自動(dòng)化系統(tǒng)的系統(tǒng)集成中應(yīng)用OPC(OLE for process control)技術(shù)可以很方便的實(shí)現(xiàn)分布式計(jì)算平臺(tái)的過(guò)程,有利于軟件互連,從而形成一個(gè)開(kāi)放性系統(tǒng)。 Microsoft提出的ATL是一個(gè)基于C++平臺(tái)的框架,主要用于M icrosoft的組件對(duì)象模型(COM)的軟件開(kāi)發(fā)。典型的OPC客戶機(jī)/服務(wù)器關(guān)系如圖所示。

      樓宇自動(dòng)化系統(tǒng)使用ATL實(shí)現(xiàn)COM接口的編程!

      使用ATL創(chuàng)建COM服務(wù)器,編寫(xiě)相應(yīng)對(duì)象完成如下任務(wù):服務(wù)器接受客戶機(jī)的請(qǐng)求,從服務(wù)器的相應(yīng)數(shù)據(jù)庫(kù)提取數(shù)據(jù),傳送給客戶機(jī)。以客戶機(jī)提出請(qǐng)求需要查詢建筑物的溫度狀況為例,說(shuō)明程序設(shè)計(jì)過(guò)程:

      第1步:新建項(xiàng)目。在Projects選擇中ATL COM AppW izard,然后建立文件名(chengxu)。“Location”編輯框中指定工程的存放位置,然后單擊ok按鈕。

      第2步:創(chuàng)建一個(gè)進(jìn)程內(nèi)服務(wù)器(Server DLL)。選擇的類(lèi)型是動(dòng)態(tài)鏈接庫(kù)“Dynamic Link Library——DLL”選項(xiàng),單擊“Finish”按鈕。向?qū)⒆詣?dòng)產(chǎn)生相應(yīng)的文件。然后出現(xiàn)“New Project Information”窗口告訴你向?qū)⒁獎(jiǎng)?chuàng)建一些什么文件。確認(rèn)后單擊OK按鈕。

      第3步:創(chuàng)建新的ATL對(duì)象。確定在VC的IDE環(huán)境中見(jiàn)到“Workspace View”。選中后單擊右鍵并從彈出菜單中選擇“New A TL Ob ject”。選擇(Simp le Object),在“Short Name”文本編輯框中輸入“First_ATL”。單擊“A ttributes”標(biāo)簽。其中有幾組單選按鈕選項(xiàng)和幾個(gè)復(fù)選框。第一組單選按鈕是線程模型“Threading M odel”,取缺省值“Apartm ent M odel”。第二組單選按鈕是接口“Interface”,單擊“Dual”,也就是雙接口。最后,第三組單選按鈕是聚合“Aggregation”,因?yàn)椴幌肷婕敖涌诘木酆希栽诖诉x擇“No”。

      第4步:將添加方法。選中“IFirst_ATL”后單擊右鍵并選擇“Add M ethod”。看到“Add M ethod to Interface”對(duì)話框。在下一個(gè)方法名編輯框“Method Name”中輸入方法名,后一個(gè)“Parameters”編輯框輸入使用的參數(shù)。方法名;shuju1參數(shù)則輸入[in] int Num1,long*Returnval采用一個(gè)輸入?yún)?shù)判斷用戶需要的查詢服務(wù),其中Num1將對(duì)應(yīng)服務(wù)器相應(yīng)數(shù)據(jù),Returnval為一個(gè)指針,進(jìn)行查詢后的數(shù)據(jù)傳遞工作。添加相應(yīng)的實(shí)現(xiàn)代碼。

      第5步:數(shù)據(jù)庫(kù)銜接。在C lassview中加入MFC類(lèi),類(lèi)名shu ju lian jie。在 Bass class:中選擇 CdaoRecordset并且銜接數(shù)據(jù)庫(kù)。見(jiàn)圖1。

      第6步:加入處理數(shù)據(jù)對(duì)象方法。添加相應(yīng)的實(shí)現(xiàn)代碼。

      第7步:進(jìn)行服務(wù)器測(cè)試。

      用VC++測(cè)試這個(gè)COM服務(wù)器。

      創(chuàng)建一個(gè)新的W in32控制臺(tái)應(yīng)用程序。選擇“Win32 Console App lication”并取名為“Test_ ATL”。單擊OK按鈕并接受對(duì)話框中的缺省設(shè)置。單擊“Finish”按鈕,然后再按OK按鈕。這樣就創(chuàng)建好了一個(gè)新的工程。

      向工程中添加一個(gè)文件。從彈出的窗口中選擇“C++Source File”并為它取名為“Test_ATL.cpp”。按下OK按鈕。這樣工程中就有了一個(gè).cpp文件。

      在這個(gè)文件中添加測(cè)試COM服務(wù)器的代碼:

      樓宇自動(dòng)化系統(tǒng)使用ATL實(shí)現(xiàn)COM接口的編程!

      服務(wù)器端運(yùn)行后進(jìn)行測(cè)試。測(cè)試程序?qū)um1=1。服務(wù)器得到請(qǐng)求,返回?cái)?shù)據(jù),并得到輸出“temperature is 23C”。


      主站蜘蛛池模板: 色吊丝av中文字幕| 99久久无码一区人妻| 日韩精品一区二区三区中文精品| 亚洲精品电影在线| 精品亚洲成a人无码成a在线观看| 国产亚洲女在线精品| 色妞妞www精品视频| 国产精品视频观看| CAOPORN视频在线观看| 影音先锋成人资源| 中文字幕天堂网| 日本成a人片在线观看网址| 乱子轮熟睡1区| 欧美在线小视频| 亚洲欧美天堂综合久久| 激情射精爆插热吻无码视频| 再深点灬舒服灬太大了添动视频 | 无码人妻久久一区二区三区免费丨 | 亚洲男人的天堂网站| 真实处破女系列全过程| 四虎AV永久在线精品免费观看| 青青草原亚洲视频| 国产无套乱子伦精彩是白视频 | 一级片一级毛片| 扒开双腿猛进入免费观看美女 | 国产亚洲情侣一区二区无| 黄网在线观看视频| 国产成年无码v片在线| jjizz全部免费看片| 国产精品亚洲一区二区无码| 337p日本欧洲亚洲大胆裸体艺术| 国精产品wnw2544a| avtt天堂网手机版亚洲| 天海翼一区二区三区高清视频| 一区二区三区无码高清视频| 成人a在线观看| 一级黄色a级片| 巨胸动漫美女被爆羞羞视频| 一线高清视频在线观看www国产| 成人A级视频在线播放| 中国在线观看免费的www|