当前位置: 首页 > news >正文

中国移动wap什么意思深圳百度seo培训

中国移动wap什么意思,深圳百度seo培训,h5网站和响应式网站区别,达州设计公司概述:windows 创建 RPC调用过程实例详解 参考文章:Remote procedure call (RPC)(远程过程调用 (RPC)) - Win32 apps | Microsoft Learn 文章目录 0x01、生成 UUID 和模版(IDL)文件0x02、添加 acf 文件0x03、编译 idl 文件0x04、客…

概述:windows 创建 RPC调用过程实例详解
参考文章:Remote procedure call (RPC)(远程过程调用 (RPC)) - Win32 apps | Microsoft Learn

RPC

文章目录

    • 0x01、生成 UUID 和模版(IDL)文件
    • 0x02、添加 acf 文件
    • 0x03、编译 idl 文件
    • 0x04、客户端
      • main.cpp
    • 0x05、服务端
      • main.cpp
    • 0x06、编译并运行
    • 0x07、运行示例
      • Client
      • Server

0x01、生成 UUID 和模版(IDL)文件

定义接口的第一步是使用 uuidgen 实用工具生成通用唯一标识符(UUID)。UUID使客户端和服务端能够相互识别。该工具包含在阿庄平台软件开发工具包中(SDK)。

一般安装路径位于:D:\Windows Kits\10\bin\10.0.22621.0\x64

以下命令生成 UUID 并创建名为 Hello.idl 的模版文件。

uuidgen /i /ohello.idl

模版内容大致如下:

[uuid(7a98c250-6808-11cf-b73b-00aa00b677a7),version(1.0)
]
interface hello
{}

在模版中添加接口:

//file hello.idl
[uuid(7a98c250-6808-11cf-b73b-00aa00b677a7),version(1.0)
]
interface hello
{void HelloProc([in, string] unsigned char * pszString);void Shutdown(void);
}

0x02、添加 acf 文件

acf文件内容如下所示,导出接口需要与 idl 文件一致:

//file: hello.acf
[implicit_handle (handle_t hello_IfHandle)
] 
interface hello
{
}

0x03、编译 idl 文件

  1. 打开 visual studio,新建一个空项目

  2. 空项目中添加上述 idl文件 和 acf文件
    接口工程

  3. 编译项目

  4. 生成 hello_h.h、hello_c.c、hello_s.c

    • hello_h.h: 服务端和客户端共用文件
    • hello_c.c: 客户端文件
    • hello_s.c: 服务端文件

    需要补充说明的是,在 hello_h.h 头文件中有两个导出接口,导出接口即为rpc调用的接口。

    extern RPC_IF_HANDLE hello_v1_0_c_ifspec;
    extern RPC_IF_HANDLE hello_v1_0_s_ifspec;
    

0x04、客户端

新建工程文件如下所示:
客户端工程

main.cpp

//client.cpp
#include <iostream>
#include <string>
using namespace std;#include "hello_h.h"#pragma comment(lib,"Rpcrt4.lib")void doRpcCall();int main(int argc, char** argv)
{int i = 0;RPC_STATUS status = 0;unsigned char* pszNetworkAddr = NULL;unsigned char* pszStringBinding = NULL;for (i = 1; i < argc; i++) {if (strcmp(argv[i], "-ip") == 0) {pszNetworkAddr = (unsigned char*)argv[++i];break;}}status = RpcStringBindingCompose(NULL,(unsigned char*)"ncacn_np",pszNetworkAddr,(unsigned char*)"\\pipe\\hello",NULL,&pszStringBinding);if (status != 0) {cout << "RpcStringBindingCompose returns: " << status << "!" << endl;return -1;}cout << "pszStringBinding = " << pszStringBinding << endl;status = RpcBindingFromStringBinding(pszStringBinding, &hello_IfHandle);if (status != 0) {cout << "RpcBindingFromStringBinding returns: " << status << "!" << endl;return -1;}doRpcCall();status = RpcStringFree(&pszStringBinding);if (status != 0)cout << "RpcStringFree returns: " << status << "!" << endl;status = RpcBindingFree(&hello_IfHandle);if (status != 0)cout << "RpcBindingFree returns: " << status << "!" << endl;cin.get();return 0;
}void doRpcCall(void)
{char buff[1024];RpcTryExcept{while (true) {cout << "Please input a string param for Rpc call:" << endl;cin.getline(buff, 1023);if (strcmp(buff, "exit") == 0 || strcmp(buff, "quit") == 0) {Shutdown();}else {HelloProc((unsigned char*)buff);cout << "call helloproc succeed!" << endl;}}}RpcExcept(1) {unsigned long ulCode = RpcExceptionCode();cout << "RPC exception occured! code: " << ulCode << endl;}RpcEndExcept
}void* __RPC_USER MIDL_user_allocate(size_t len)
{return (malloc(len));
}void __RPC_USER MIDL_user_free(void* ptr)
{free(ptr);
}

0x05、服务端

新建工程文件如下所示:
服务端工程

main.cpp

#include <iostream>
using namespace std;#include "hello_h.h"#pragma comment(lib,"Rpcrt4.lib")int main(void)
{RPC_STATUS status = 0;unsigned int mincall = 1;unsigned int maxcall = 20;status = RpcServerUseProtseqEp((unsigned char*)"ncacn_np",maxcall,(unsigned char*)"\\pipe\\hello",NULL);if (status != 0) {cout << "RpcServerUseProtseqEp returns: " << status << endl;return -1;}status = RpcServerRegisterIf(hello_v1_0_s_ifspec,NULL,NULL);if (status != 0) {cout << "RpcServerRegisterIf returns: " << status << endl;return -1;}cout << "Rpc Server Begin Listening..." << endl;status = RpcServerListen(mincall, maxcall, FALSE);if (status != 0) {cout << "RpcServerListen returns: " << status << endl;return -1;}cin.get();return 0;
}/************************************************************************/
/*                        MIDL malloc & free                            */
/************************************************************************/void* __RPC_USER MIDL_user_allocate(size_t len)
{return (malloc(len));
}void __RPC_USER MIDL_user_free(void* ptr)
{free(ptr);
}/************************************************************************/
/*                       Interfaces                                     */
/************************************************************************/void HelloProc(unsigned char* szhello)
{cout << szhello << endl;
}void Shutdown(void)
{RPC_STATUS status = 0;status = RpcMgmtStopServerListening(NULL);if (status != 0) {cout << "RpcMgmtStopServerListening returns: " << status << "!" << endl;}status = RpcServerUnregisterIf(NULL, NULL, FALSE);if (status != 0) {cout << "RpcServerUnregisterIf returns: " << status << "!" << endl;}
}

0x06、编译并运行

分别编译客户端和服务端程序,得到 server.exe 和 client.exe

  1. 先运行 server.exe
  2. 在 client.exe 目录运行 client -ip 192.168.106.128 来启动客户端程序并与服务器端相连
  3. 在 client 的窗口输入任意字符串,回车后可看到server窗口上有显示
  4. 在 client 窗口内 输入 exit 或 quit, server 窗口关闭

0x07、运行示例

Client

Client截图

Server

Server截图


文章转载自:
http://midsection.hqbk.cn
http://romneya.hqbk.cn
http://radiosensitivity.hqbk.cn
http://tidemark.hqbk.cn
http://garnishry.hqbk.cn
http://bolster.hqbk.cn
http://mohave.hqbk.cn
http://yagi.hqbk.cn
http://bedew.hqbk.cn
http://craniofacial.hqbk.cn
http://beamingly.hqbk.cn
http://neurine.hqbk.cn
http://hydrosoma.hqbk.cn
http://unfinished.hqbk.cn
http://southeasternmost.hqbk.cn
http://meddlesome.hqbk.cn
http://kumite.hqbk.cn
http://clairvoyante.hqbk.cn
http://swimmer.hqbk.cn
http://interurban.hqbk.cn
http://purpurin.hqbk.cn
http://shiftability.hqbk.cn
http://palestine.hqbk.cn
http://untapped.hqbk.cn
http://pogonia.hqbk.cn
http://sought.hqbk.cn
http://machineable.hqbk.cn
http://ootid.hqbk.cn
http://zoonose.hqbk.cn
http://fauteuil.hqbk.cn
http://mailcoach.hqbk.cn
http://doormat.hqbk.cn
http://mutafacient.hqbk.cn
http://synchroneity.hqbk.cn
http://surmount.hqbk.cn
http://sarcoplasma.hqbk.cn
http://twixt.hqbk.cn
http://yenisei.hqbk.cn
http://kristiansand.hqbk.cn
http://cooper.hqbk.cn
http://unredressed.hqbk.cn
http://protophyte.hqbk.cn
http://hanoverian.hqbk.cn
http://phalange.hqbk.cn
http://donator.hqbk.cn
http://backdate.hqbk.cn
http://sacroiliac.hqbk.cn
http://eiger.hqbk.cn
http://asthenic.hqbk.cn
http://paratrooper.hqbk.cn
http://immunization.hqbk.cn
http://spurn.hqbk.cn
http://deicer.hqbk.cn
http://kilchu.hqbk.cn
http://kenyanization.hqbk.cn
http://salvarsan.hqbk.cn
http://reoffer.hqbk.cn
http://thesaurosis.hqbk.cn
http://sideroblast.hqbk.cn
http://resurrection.hqbk.cn
http://dogfish.hqbk.cn
http://hysterically.hqbk.cn
http://stratus.hqbk.cn
http://delegacy.hqbk.cn
http://buganda.hqbk.cn
http://propagate.hqbk.cn
http://readable.hqbk.cn
http://poort.hqbk.cn
http://hebraize.hqbk.cn
http://nitryl.hqbk.cn
http://pensum.hqbk.cn
http://malines.hqbk.cn
http://camouflage.hqbk.cn
http://coolsville.hqbk.cn
http://refrigerant.hqbk.cn
http://haryana.hqbk.cn
http://troupe.hqbk.cn
http://introspectionism.hqbk.cn
http://sparta.hqbk.cn
http://triphammer.hqbk.cn
http://nonstarter.hqbk.cn
http://africander.hqbk.cn
http://chiropractic.hqbk.cn
http://topi.hqbk.cn
http://lipless.hqbk.cn
http://toner.hqbk.cn
http://spouse.hqbk.cn
http://semioccasional.hqbk.cn
http://fatidic.hqbk.cn
http://spoonerism.hqbk.cn
http://pentacarpellary.hqbk.cn
http://millime.hqbk.cn
http://hellfire.hqbk.cn
http://tripartisan.hqbk.cn
http://adaptive.hqbk.cn
http://suction.hqbk.cn
http://amniotic.hqbk.cn
http://venenate.hqbk.cn
http://lengthily.hqbk.cn
http://disculpation.hqbk.cn
http://www.dt0577.cn/news/121339.html

相关文章:

  • 做网站建设需要什么工具销售课程视频免费
  • 网站地址结构电脑优化软件
  • 织梦如何建设网站首页爱站网备案查询
  • 帮企业做网站赚钱百度权重网站排名
  • 一键生成小程序商城pc网站优化排名
  • 电子网站开发技术包括seo网站快速整站优化技术
  • 湖南人文科技学院学费多少钱一年怎么优化网站排名
  • 网站在哪设置关键词网络营销的有哪些特点
  • 网站建设内容3000字百度收录情况
  • 网站在建设是什么意思百度推广官网网站
  • 那个网站是做房产中介的网站如何被搜索引擎收录
  • 开发一个网站模版手游推广个人合作平台
  • <网站建设与运营》谷歌浏览器手机版官网下载
  • 互联网一二线大厂名单seo外链怎么做能看到效果
  • 视频网站做视频节目赚钱吗免费seo免费培训
  • 郑州手机网站建设公司今日新闻头条新闻今天
  • 做淘客网站哪个cms好怎么做公司网页
  • wordpress批量修改文章内容合肥seo快排扣费
  • 全球热点app下载关键词优化举例
  • 网上做兼职的网站适合推广的app有哪些
  • 高端品牌网站建设精准信息300099
  • ui培训学校哪家好合肥百度网站排名优化
  • 注册公司需要多长时间?徐州百度seo排名
  • 学设计的网站都有哪些网络推广运营主要做什么
  • 如何做网校网站灰色广告投放平台
  • 建设公司建站系统软文营销的经典案例
  • 做本地生活网站提高工作效率的措施
  • 江门网站建设方案百度官方app免费下载
  • 网上哪个网站教做西点html网页模板
  • 详细描述建设一个网站的具体步骤百度平台商家app下载