日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

COM与.NET调用DCOM组件

發布時間:2025/3/21 asp.net 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 COM与.NET调用DCOM组件 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
COM組件已經部署好了,接下來就是調用了既然我們是部署了COM+服務器,我們這里就講下怎么遠程調用COM組件。

在創建好VC的WIN32項目后,在預編譯文件中引用。

  • #ifndef?_WIN32_WINNT????//?Allow?use?of?features?specific?to?Windows?XP?or?later.???????????????????
  • #define?_WIN32_WINNT?0x0501?//?Change?this?to?the?appropriate?value?to?target?other?versions?of?Windows.
  • #endif??????????????????????

  • #include?<stdio.h>
  • #include?<tchar.h>
  • #include?<icrsint.h>
  • #include?<iostream>
  • #include?<windows.h>

  • #import?"SayHello.tlb"?no_namespace?named_guids
  • #define?_WIN32_WINNT?0x0501?//是為了DCOM調用很多函數都有下面的限定,不然不能編譯通過了如:

    #if (_WIN32_WINNT >= 0x0400 ) || defined(_WIN32_DCOM) // DCOM

    #import?"SayHello.tlb"?no_namespace?named_guids? //是將COM組件的定義引用進來

    ISayHello接口變為C++的如下定義:

  • struct?__declspec(uuid("c6d664f5-6cf6-4c12-9948-8a40b16818be"))
  • ISayHello?:?IDispatch
  • {
  • ????//
  • ????//?Wrapper?methods?for?error-handling
  • ????//
  • ????_bstr_t?SayHello?(
  • ????????_bstr_t?name?);

  • ????//
  • ????//?Raw?methods?provided?by?interface
  • ????//

  • ????virtual?HRESULT?__stdcall?raw_SayHello?(
  • ????????/*[in]*/?BSTR?name,
  • ????????/*[out,retval]*/?BSTR?*?pRetVal?)?=?0;
  • };
  • 調用代碼如下:

  • ????//初始化COM運行環境,也可以使用CoInitialize但使用COM的每根線程都需要調用
  • ????CoInitializeEx(NULL,?COINIT_MULTITHREADED);
  • ????HRESULT?hr;
  • ????//為進程(一個進程只需調用一次)注冊安全和設置默認安全設置,
  • ????//我們上期寫的是以匿名方式部署可以不需要這部分
  • ????hr?=?CoInitializeSecurity(NULL,?-1,?NULL,?NULL,RPC_C_AUTHN_LEVEL_NONE,?
  • ????????RPC_C_IMP_LEVEL_ANONYMOUS,?NULL,?EOAC_NONE,?NULL);
  • ????
  • //??//設置驗證標識信息,我們上期寫的是以匿名方式部署不需要這部分
  • //??COAUTHIDENTITY?*pAuthidentity;
  • //??COAUTHINFO?*pAuthInfo;
  • //??pAuthidentity?=?(COAUTHIDENTITY*)malloc(sizeof(COAUTHIDENTITY));
  • //??pAuthidentity->User?=?(USHORT*)pUser;
  • //??pAuthidentity->UserLength?=?strlen(pUser);
  • //??pAuthidentity->Password?=?(USHORT*)pPassword;
  • //??pAuthidentity->PasswordLength?=?strlen(pPassword);
  • //??pAuthidentity->Domain?=?NULL;
  • //??pAuthidentity->DomainLength?=?0;
  • //??//有時候驗證通過UNICODE的方式不要設置錯了
  • //??pAuthidentity->Flags?=?SEC_WINNT_AUTH_IDENTITY_ANSI;
  • //??
  • //??//驗證信息
  • //??pAuthInfo?=?(COAUTHINFO*)malloc(sizeof(COAUTHINFO));
  • //??pAuthInfo->dwAuthnSvc=?RPC_C_AUTHN_WINNT;
  • //??pAuthInfo->dwAuthzSvc=?RPC_C_AUTHZ_NONE;
  • //??pAuthInfo->pwszServerPrincName=?NULL;
  • //??pAuthInfo->dwAuthnLevel=?RPC_C_AUTHN_LEVEL_NONE;
  • //??pAuthInfo->dwImpersonationLevel=?RPC_C_IMP_LEVEL_IMPERSONATE;
  • //??pAuthInfo->dwCapabilities=?RPC_C_QOS_CAPABILITIES_DEFAULT;
  • //??pAuthInfo->pAuthIdentityData=?pAuthidentity;

  • ????//遠程服務器信息
  • ????COSERVERINFO?ServerInfo={0,?L"192.168.0.200",?NULL/*pAuthInfo*/,?0};
  • ????MULTI_QI?MultiQi={?IID_ISayHello,?NULL,?NOERROR?};
  • ????ISayHello?*pSayHello;
  • ????//創建DCOM對象返回接口指針
  • ????hr?=?CoCreateInstanceEx(CLSID_CSayHello,?NULL,?CLSCTX_REMOTE_SERVER,?&ServerInfo,?1,?&MultiQi);
  • ????if(FAILED(hr))?return;
  • ????
  • ????*pSayHello?=?(ISayHello*)MultiQi.pItf;
  • ????//為DCOM對象指針設置反問安全令牌
  • ????hr?=?CoSetProxyBlanket(*ppUnknown,?RPC_C_AUTHN_WINNT,RPC_C_AUTHZ_NONE,?NULL,
  • ????????RPC_C_AUTHN_LEVEL_NONE,RPC_C_IMP_LEVEL_ANONYMOUS,?NULL/*pAuthidentity*/,?EOAC_NONE);

  • ????BSTR?userName?=?SysAllocString(L"test");
  • ????BSTR?retVal;
  • ????//調用DCOM接口
  • ????hr?=?pSayHello->raw_SayHello(userName,?&retVal);
  • ????//釋放DCOM接口
  • ????pSayHello->Release();
  • ????//釋放COM運行環境
  • ????CoUninitialize();
  • 總結

    以上是生活随笔為你收集整理的COM与.NET调用DCOM组件的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 香港台湾日本三级大全 | 久热在线 | 国产丰满美女做爰 | 欧洲性生活片 | 日本黄色中文字幕 | 国产中文字幕网 | 久热色 | 国产精品国产三级国产播12软件 | 青娱乐最新地址 | 99视频久久| 日韩国产亚洲欧美 | 少妇肥臀大白屁股高清 | 狼性av| 天天做天天爱天天操 | 在线无遮挡 | 99久久久精品| 成人在线观看18 | 波多野结衣av在线观看 | 国语对白对话在线观看 | www.com毛片 | 亚洲va久久久噜噜噜久久天堂 | 一本久道在线 | 亚洲AV无码精品色毛片浪潮 | 久久婷婷网站 | 国产高清在线一区 | 天天综合久久 | 少妇捆绑紧缚av | 羞羞动漫免费观看 | 国产高清无密码一区二区三区 | 九月婷婷色 | 一区二区三区精品在线 | 亚洲伦理精品 | 草草影院最新 | 亚洲欧美自拍一区 | 天堂а在线中文在线新版 | 国产97av | 69成人免费视频 | 日韩精品一区二区免费视频 | 亚洲国产免费视频 | 黄色午夜视频 | 永久久久久久久 | 在线爱情大片免费观看大全 | 欧美激情片在线观看 | 成人小视频在线免费观看 | 天天色天天搞 | 亚洲free性xxxx护士白浆 | 日韩精品免费观看 | 久久久久久久久久久久久久久久久久久 | 人人干人人草 | 香蕉av网 | 亚洲精品一区二三区 | 亚洲爽爆 | 国产精品久久在线 | 亲切的金子餐桌片段的金子 | 亚洲射| 调教撅屁股啪调教打臀缝av | 在线99热| 最新网址av| 亚洲精品欧美在线 | 日日碰狠狠添天天爽无码av | 亚洲免费观看av | 亚洲色图13p | 成人免费激情视频 | 女色婷婷 | 国产麻豆精品一区二区 | 国产白丝av | 中文字幕日韩三级 | 日本特黄网站 | 日韩在线天堂 | 麻豆系列在线观看 | 蜜乳av网站 | 超碰888| 亚洲一区二区三区婷婷 | 中文在线观看av | 美女扒开内裤让男人捅 | 青娱乐在线视频免费观看 | 日韩无码精品一区二区 | 亚洲激情第一页 | 日韩乱码在线观看 | 色欧美88888久久久久久影院 | 色久视频| 在线播放无码后入内射少妇 | 一线毛片 | 色妞综合 | www.com毛片 | 毛片在线看片 | youjizzcom日本 | 亚洲人在线观看视频 | 成熟女人毛片www免费版在线 | 无遮挡av| 成人动漫在线观看视频 | 日韩精品成人在线观看 | 中文字幕在线乱 | 亚洲乱码中文字幕久久孕妇黑人 | 99精品福利| 黄色成年人 | av手机在线免费观看 | 亚洲精品韩国 | 性一级视频 |