用VC++編寫DCOM程序以及DCOM的配置方法

用VC++編寫DCOM程序以及DCOM的配置方法

ID:38748558

大小:239.00 KB

頁數(shù):11頁

時(shí)間:2019-06-18

用VC++編寫DCOM程序以及DCOM的配置方法_第1頁
用VC++編寫DCOM程序以及DCOM的配置方法_第2頁
用VC++編寫DCOM程序以及DCOM的配置方法_第3頁
用VC++編寫DCOM程序以及DCOM的配置方法_第4頁
用VC++編寫DCOM程序以及DCOM的配置方法_第5頁
資源描述:

《用VC++編寫DCOM程序以及DCOM的配置方法》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。

1、怎樣用VC++編寫DCOM程序于玲2001.2.10一、建立服務(wù)器程序:1、用VC++建立一個(gè)名為Test的workspace。2、在workspace中加入一個(gè)新的工程,選ATLCOMAppwizard項(xiàng),命名為AddSub,下一步server類型選service(EXE)。3、添加組件對象:打開InsertNewATLObject,選SimpleObject,在names下shortname填A(yù)ddSubCom,如果需要可以將interface改為IAdd(默認(rèn)為IAddSub),在attributes下interface選custom,則該com組件接口將從IUnk

2、nown繼承,如果aggregation選yes,則該組件可被聚合。4、a)組件接口函數(shù)的定義:打開AddSub.idl文件,在接口IAdd下填寫接口函數(shù)的聲明:interfaceIAdd:IUnknown{//接口函數(shù)的聲明HRESULTAddMatrix([in]intlength,[in,size_is(length)]double*pfMatrix,[in,size_is(length)]double*psMatrix,[out,size_is(length)]double*prMatrix);};另一種方法是:在workspace的class標(biāo)簽中,右鍵點(diǎn)擊IAd

3、d,選AddMethod,在對話框中添加。b)組件接口函數(shù)的聲明(如果在上一步中使用第二種方法添加,則無需此步):打開AddSubCom.h文件,在類聲明后面加入:STDMETHOD(AddMatrix)(intlength,double*pfMatrix,double*psMatrix,double*prMatrix);c)組件接口函數(shù)的實(shí)現(xiàn):打開AddSubCom.cpp文件,加入接口方法的實(shí)現(xiàn)函數(shù):STDMETHODIMPCAddSubCom::AddMatrix(intlength,double*pfMatrix,double*psMatrix,double*prM

4、atrix){//函數(shù)功能returnNOERROR;}5、組件注冊:一般地,編譯完成服務(wù)器自動(dòng)注冊;如果使用編譯好的服務(wù)器,注冊方法是用/Register參數(shù)執(zhí)行服務(wù)器程序,如C:MyDirAddSub/RegServer,解注冊用/UnregServer(參見AddSub.cpp源碼)。二、建立代理/存根DLL1、建立一個(gè)新的工程命名為PSAddSub,工程選Win32Dynamic-LinkLibrary,其余默認(rèn)。2、在工程中新建一個(gè)文本文件PSAddSub.def,內(nèi)容如下:LIBRARYPSAddSubEXPORTSDllGetClassObjectPRIV

5、ATEDllCanUnloadNowPRIVATEDllRegisterServerPRIVATEDllUnregisterServerPRIVATEGetProxyDllInfoPRIVATE1、將AddSub.idl生成的AddSub.h、AddSub_i.c、AddSub_p.c、dlldata.c四個(gè)文件加入工程。2、projectsettingc/c++中categoryPreprocessordefinitions加入REGISTER_PROXY_DLL,_WIN32_DCOM,projectsettinglink中Object/librarymodu

6、les加入rpcndr.librpcns4.librpcrt4.lib,然后編譯,生成PSAddSub.dll。3、注冊dll:c:MyDir>regsvr32PSAddSub.dll;也可以用VC++的toolsRegisterControl。ndictionary.h——包含接口說明的頭文件,可用于C或者C++語言;ndictionary_p.c——該C文件實(shí)現(xiàn)了接口IDictionary的代理和存根;ndictionary_i.c——該C文件定義了IDL文件中用到的所有全局描述符GUID,包括接口描述符;ndlldata.c——該C文件包含代理/存根程序的入口函數(shù)

7、以及代理類廠所需要的數(shù)據(jù)結(jié)構(gòu)等。二、建立客戶程序在客戶端主程序中加入如下程序段:#include#include#include#include"../Server/Server.h"intmain(){CString*pszHostName=newCString("125.223.8.77");//char*pszHostName="125.223.8.77";//pszHostName=;HRESULThResult;//PrepareCOMforusehResu

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負(fù)責(zé)整理代發(fā)布。如果您對本文檔版權(quán)有爭議請及時(shí)聯(lián)系客服。
3. 下載前請仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請聯(lián)系客服處理。