青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

萬星星@豌豆莢 歡迎加入我們
一個吃軟飯的男人!!!!!我只想寫程序####
微博:http://weibo.com/wanlianwen
posts - 172,  comments - 1253,  trackbacks - 0

學習 COM 的時候,一直強調 COM 的位置透明,但是始終感覺不到透明,組件都是本機注冊的。知道分布式 COM 其實就是 DCOM 可以實現遠程調用組件,但是一直懶于看,遲遲沒有很好理解。眼看著分布式軟件設計這么流行, .NET 、 J2EE 大行其道,橫下心先把 DCOM 拿下。至于 DCOM 好處我不多說,上網 google 一下,最大的缺點是配置麻煩,尤其是存在防火墻的時候更麻煩(網上說的,我沒有防火墻,呵呵)。

簡單介紹?

從這個圖看看客戶端和服務器端分別需要什么(由于開始沒有理解,客戶端接口查詢老失敗,花費我半天時間)

客戶端:客戶程序、代理 / 存根

服務器端:服務器組件、代理 / 存根

這里可以看出 DOM 是針對 COM 遠程調用( RPC )的實現,封裝了底層通信。有些程序開發就是在使用 Socket DCOM 之間選擇。

?

一個 DCOM 程序實現

實現一個簡單的功能: DCOM 組件提供一個接口方法獲取歡迎信息,客戶端調用接口獲取信息并顯示。

創建 DCOM 組件

打開 VC6 ,首選創建一個 ATL 工程 DComServer

選擇完成。

添加一個 ATL 組件,取名 Server ,添加一個接口方法:

實現方法:

STDMETHODIMP?CServer::GetInfo(BSTR? * pbstrInfo)
{
???????
// ?TODO:?Add?your?implementation?code?here
??????? if (pbstrInfo)
???????
{
??????????????
* pbstrInfo? = ?SysAllocString(L " 你好,這里是DCOM服務器! " );
???????}

???????
return ?S_OK;
}

打開Settings,進行工程設置:

編譯可以發現項目目錄下面生成了 DComServerps.dll ,這個就是代理存根,需要在客戶和服務器注冊。

創建客戶端調用(一個基于對話框的 MFC 程序) (記的要初始化 COM 庫)

實現連接和獲取消息按鈕事件:

void ?CDComClientDlg::OnButtonConnect()?
{
????
// ?TODO:?Add?your?control?notification?handler?code?here
????COSERVERINFO????serverInfo;
????MULTI_QI????????multiQi????????
= ? { & IID_IServer,?NULL,?NOERROR} ;
????HRESULT????????????hr????????????
= ?NOERROR;
????UpdateData(TRUE);
????
// ?如果已經連接上
???? if (m_pIServer)
????
{
????????m_pIServer
-> Release();
????????m_pIServer?
= ?NULL;
????}

????ZeroMemory(
& serverInfo,? sizeof (COSERVERINFO));
????serverInfo.pwszName?
= ?m_strServer.AllocSysString();
????
// ?創建遠程組件
????hr? = ?CoCreateInstanceEx(
????????CLSID_Server,
????????NULL,
????????CLSCTX_REMOTE_SERVER,
????????
& serverInfo,
????????
1 ,
????????
& multiQi);
????
// ?釋放字符串指針
????SysFreeString(serverInfo.pwszName);
????
if (SUCCEEDED(hr))
????
{
????????m_pIServer?
= ?(IServer * )multiQi.pItf;
????????AfxMessageBox(_T(
" 連接成功! " ));
????}

????
else
????
{
????????AfxMessageBox(_T(
" 連接失敗! " ));
????}

}


void ?CDComClientDlg::OnButtonGetmessage()?
{
????
// ?TODO:?Add?your?control?notification?handler?code?here
????BSTR????bstrInfo;
????USES_CONVERSION;
????
if (m_pIServer)
????
{
????????m_pIServer
-> GetInfo( & bstrInfo);
????????AfxMessageBox(W2A(bstrInfo));
????}

????
else
????
{
????????AfxMessageBox(_T(
" 請連接DCOM服務! " ));
????}

}

?

部署客戶端

這個地方有網上說很麻煩,需要關閉防火墻、需要用戶名一致等,不過我還好,服務器是 Win2k sp4 administrator 帳戶,客戶端是 Win2k3 sp1 administrator 帳戶,一次性就可以創建遠程組件,就是查詢接口時候老是失敗。花了半天時間上網才發現需要注冊代理存根 dll ,就是編譯 DComServer 之前需要設置的。

拷貝 DComServer 下的 DComServerps.dll DComClient Debug 里面的 DComClient.exe 到客戶端,使用 regsvr32 注冊 DComServerps.dll ,運行 DComClient.exe

連接 DCOM 服務:

服務器進程自動啟動:

獲取消息:

?
代碼下載。(里面有說明)

?

posted on 2006-07-10 11:25 萬連文 閱讀(2730) 評論(8)  編輯 收藏 引用 所屬分類: ATL

FeedBack:
# re: 分布式設計之DCOM實現
2006-07-10 18:58 | LOGOS
汗.你要用RPC的話,用web service比DCOM好多了.  回復  更多評論
  
# re: 分布式設計之DCOM實現
2006-07-14 00:07 | hi
兄弟,dcom微軟已經不再進行后期研發維護了,都改com+,Dot Net呢!  回復  更多評論
  
# re: 分布式設計之DCOM實現
2006-07-14 10:08 | 萬連文
謝謝以上兩個兄弟對我的友情提示,我知道技術越用越簡單,我覺得自己應該一步一個腳印走過去,很難說.NET技術底層實現思想很大超越COM。  回復  更多評論
  
# re: 分布式設計之DCOM實現
2007-03-18 10:58 | 小橋
.NET本身就是個COM  回復  更多評論
  
# re: 分布式設計之DCOM實現
2007-03-18 10:59 | 小橋
望交流,QQ:2220911  回復  更多評論
  
# re: 分布式設計之DCOM實現
2008-07-07 12:03 | liyongcheng
客戶端傳遞給服務器一個字符串怎么實現。


  回復  更多評論
  
# re: 分布式設計之DCOM實現
2008-07-07 23:07 | lwan
服務器添加一個接口傳遞字符串應該就可以了吧  回復  更多評論
  
# re: 分布式設計之DCOM實現
2011-12-05 12:53 | lhh
DCOM 跨機訪問總是出權限問題, CoCreateInstanceEx返回ACCESSDENIED,請問該如何解決?  回復  更多評論
  
簡歷下載
聯系我

<2007年5月>
293012345
6789101112
13141516171819
20212223242526
272829303112
3456789

常用鏈接

留言簿(66)

隨筆分類

隨筆檔案

相冊

搜索

  •  

最新評論

閱讀排行榜

評論排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            久久亚洲视频| 国产一区成人| 国产精品电影在线观看| 国产午夜精品视频免费不卡69堂| 亚洲国产精品久久久久秋霞不卡| 欧美在线视频一区二区| 国产日韩欧美在线| 久久精品2019中文字幕| 久久免费视频观看| 一本色道久久精品| 欧美a级大片| 国产午夜精品视频免费不卡69堂| 亚洲欧洲一区二区在线播放 | 亚洲性感美女99在线| 免费观看成人鲁鲁鲁鲁鲁视频| 小黄鸭精品密入口导航| 最新精品在线| 久久gogo国模裸体人体| 久久久久国色av免费看影院| 久久av一区二区三区漫画| 亚洲人成在线观看| 欧美激情一区二区三区四区| 亚洲人成亚洲人成在线观看图片 | 国产精品乱人伦中文| 亚洲一区二区三区精品在线| 一区二区日韩精品| 国产精品福利网| 亚洲欧美国产高清| 亚洲综合色激情五月| 国产欧美一区二区色老头| 欧美一区在线看| 欧美中文日韩| 亚洲精品一区二| 99爱精品视频| 国产日韩欧美一区二区| 欧美电影免费观看大全| 欧美日韩精品伦理作品在线免费观看| 中文久久乱码一区二区| 午夜国产精品视频| 亚洲国产综合在线| 亚洲精品视频啊美女在线直播| 欧美日韩午夜在线| 久久精品视频在线| 欧美国产亚洲视频| 欧美在线看片| 欧美大片免费看| 欧美一区二粉嫩精品国产一线天| 欧美一区二区三区视频在线观看| 在线观看成人网| 日韩午夜av| 黄色日韩网站视频| 亚洲美女在线一区| 黄色成人av网站| 亚洲深夜影院| 亚洲国产欧美不卡在线观看| 亚洲一卡久久| 亚洲精品国产精品国自产观看浪潮| a91a精品视频在线观看| 伊人春色精品| 亚洲欧美日韩综合aⅴ视频| 最新高清无码专区| 日韩视频在线一区| 亚洲欧美日韩一区在线| 母乳一区在线观看| 亚洲国产精品久久久久秋霞不卡| 99视频一区| 亚洲第一区在线观看| 亚洲视频第一页| 日韩亚洲视频在线| 久久精品亚洲精品| 欧美在线一区二区| 欧美性猛交一区二区三区精品| 欧美国产第一页| 黄色欧美成人| 欧美影院视频| 小黄鸭精品aⅴ导航网站入口| 欧美激情视频一区二区三区不卡| 久久青草福利网站| 国产亚洲aⅴaaaaaa毛片| 一区二区三区欧美成人| 亚洲美女91| 欧美二区乱c少妇| 美女图片一区二区| 国产综合久久久久久鬼色| 亚洲一区bb| 亚洲免费网站| 欧美午夜不卡在线观看免费| 亚洲人午夜精品免费| 亚洲福利久久| 麻豆精品视频在线观看| 免费欧美在线视频| 亚洲二区免费| 乱人伦精品视频在线观看| 美女精品在线观看| 亚洲成人资源网| 狂野欧美一区| 亚洲电影免费观看高清完整版| 尤物在线观看一区| 麻豆av一区二区三区久久| 欧美成人午夜| 最新日韩欧美| 欧美另类人妖| 在线一区免费观看| 午夜精品影院| 国产一区美女| 麻豆久久精品| 亚洲美女在线看| 欧美尤物巨大精品爽| 国产女主播一区二区| 午夜久久一区| 免费成人黄色片| 亚洲美女精品久久| 欧美日韩在线另类| 亚洲私人影院在线观看| 欧美成人性生活| 亚洲美女诱惑| 午夜在线a亚洲v天堂网2018| 国产一区白浆| 欧美激情精品久久久久久免费印度 | 久久精品国产清高在天天线| 美女视频黄a大片欧美| 日韩视频永久免费观看| 欧美视频观看一区| 欧美一区二区精美| 欧美大香线蕉线伊人久久国产精品| 亚洲美女电影在线| 国产日韩欧美高清| 免费在线观看精品| 亚洲美女尤物影院| 久久久久久久久伊人| 亚洲电影在线播放| 午夜精品免费在线| 亚洲国产精品第一区二区| 欧美裸体一区二区三区| 午夜在线一区| 亚洲欧洲综合另类在线| 欧美在线视频免费播放| 亚洲欧洲中文日韩久久av乱码| 欧美午夜电影网| 久久久.com| 亚洲在线免费观看| 亚洲国产精品电影在线观看| 欧美一级在线视频| 99热这里只有成人精品国产| 国产伦精品一区二区三区在线观看 | 老司机aⅴ在线精品导航| 一区二区三区成人精品| 免费在线播放第一区高清av| 亚洲制服欧美中文字幕中文字幕| 在线成人激情| 国产麻豆午夜三级精品| 欧美欧美在线| 美国成人直播| 欧美在线日韩在线| 中文在线资源观看网站视频免费不卡 | 国产精品高潮呻吟久久| 葵司免费一区二区三区四区五区| 亚洲一区二区三区久久 | 欧美午夜一区二区| 免费欧美网站| 久久久av毛片精品| 亚洲欧美影院| 亚洲图片在区色| 99国产精品99久久久久久粉嫩| 女主播福利一区| 久久综合色婷婷| 久久精品一区二区三区四区 | 亚洲已满18点击进入久久| 亚洲精品欧洲| 亚洲国产专区| 亚洲国产日韩综合一区| 激情成人亚洲| 黑人中文字幕一区二区三区| 国产欧美在线观看| 国产裸体写真av一区二区| 国产精品二区影院| 国产精品免费网站在线观看| 欧美手机在线| 国产精品国产精品| 国产精品久久激情| 国产精品麻豆成人av电影艾秋| 欧美日韩一级视频| 欧美四级在线观看| 欧美午夜电影在线观看| 亚洲欧美精品suv| 久久婷婷综合激情| 欧美专区在线播放| 久久丁香综合五月国产三级网站| 午夜精品影院| 久久高清免费观看| 久久蜜桃香蕉精品一区二区三区| 欧美激情精品久久久久久久变态 | 国产亚洲精品aa| 亚洲第一中文字幕在线观看| 国产一区二区三区久久久久久久久| 亚洲三级视频在线观看| 亚洲国产小视频在线观看| 免费在线欧美视频| 亚洲国产一区二区三区高清 | 亚洲一区中文|