文章目录
RPC的需求还是很多的,例如,我们注入一个dll到某程序中,而控制端是独立的exe。
此时
exe <=RPC=> dll
有没有一款 好用的简单的RPC呢?
笔者也有这个需求,经朋友推荐和演示,了解并尝试使用了 Windows RPC,发现真的简单。
需求
教程直接官网:
https://docs.microsoft.com/en-us/windows/win32/rpc/tutorial
一步一步做非常简单。
无需赘言。
使用中可能遇到的问题
-
会生成
Hello_h.h
和Hello.h
什么区别?
我认为:前者的h
意思是high-version.指rpc5 ,而后者指的是 rpc4,include 其中之一即可 -
照抄例子会报错1
hello_ClientIfHandle
它会提示你它不存在,实际它就定义在 自动生成的hello.h
文件中,它的实际名字 并不是这个,而是 类似hello_version0.1_ClientIfHandle
找到它 替换 例子。 -
照抄例子会报错2
有一步让你添加两个函数 在服务端 :
有两种解决方案:- 创建 .c 文件
你需要定义一个 .c 文件或者在里面进行定义 - 直接 在 cpp 中进行声明
即exter "c" void abc(int a);
声明一句
- 创建 .c 文件
-
IDL 文件语法
在你尝试完成第一个例子后,如果你试图增加更多的函数,发现 IDL 报错,就需要注意 IDL 里的类型并不完全和C相同,eg: bool => boolean
目前遇到的问题就是以上。
资料
https://docs.microsoft.com/en-us/windows/win32/rpc/tutorial