有了idl后怎样生成一个本地服务器的proxy/stub dll? 我写了一个idl,用midl编译后生成了四个文件。怎样用他们编译出一个proxy/stub dll? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 其中有个文件名为<your project name>ps.mk,这是个make文件,用VC的bin目录里的nmake编译,就生成proxy/stub 可以把 MIDL 生成的<your project name>ps.mk 更名为.mak,用vc打开这个文件,vc提示你将会用此.mak文件新建一个项目,然后build这个项目即可! 1.建立服务器,定义接口类型为Apartment,Custom,yes,并添加方法,其中可使用 在IDL文件中定义的数据类型。定义形式: typedef struct { int l; char df[200]; }MYSTRUCT;2.建立客户端,复制IID,CLSID定义文件,并包含接口定义文件.c 这时使用OLE/COM viewer将该接口对象设置为LOCAL型,实现本地调用ocreateInstance(..LOCAL_SERVER..), 这时候还不能实现COM的远程调用,因为还没有注册代理/存根文件。3.编译代理文件,nmake -f ps.mk生成大约24k的ps.dll文件,然后用regsvr32 ps.dll注册它。 目前为止,已经可以运行客户程序,但是会出现乱字符等问题,代理没有正常运行,问题出在代理上,需要将返回的参数用[out]标记,这样汇集器便能正常工作了。4.对注册表的修改,最好使用DCOMCNFG和OLE/COM viewer配置 (1)将接口对象的进程内服务器设为代理DLL文件 (2)将代理进程设为server.EXE文件,本地服务器可以不设 (3)修改DCOMCNFG,将DCOM设为[开启],默认身份验证为[无],模拟级别为匿名5.现在可以使用分布通信了,客户只要安装 代理和GUI 就可以了6.要在定制接口中使用字符串,必须在IDL文件中使用[string][in] VC++读模式打开文件和写模式打开文件的区别 什么个程度叫 "熟悉TCP/IP等网络协议"??? 如何实现这样的设置界面 任务栏上的按钮标题如何更改 请教为什么不能截获MM_WIM_DATA 消息? 急,急,急 用VC做的程序需要很多的库文件的支持,怎么做一个安装包?(我也不知道有多少库文件要用到) 线程能接收COM对象发出的事件么。 如何建立一个key和value都是类指针的map? 怎样删除一个目录 谁有聊天室机器人的源程序! 像聊天室里这样的功能如何实现? 紧急求助:对话框的显示
typedef struct
{
int l;
char df[200];
}MYSTRUCT;
2.建立客户端,复制IID,CLSID定义文件,并包含接口定义文件.c
这时使用OLE/COM viewer将该接口对象设置为LOCAL型,实现本地调用ocreateInstance(..LOCAL_SERVER..), 这时候还不能实现COM的远程调用,因为还没有注册代理/存根文件。3.编译代理文件,nmake -f ps.mk生成大约24k的ps.dll文件,然后用regsvr32 ps.dll注册它。
目前为止,已经可以运行客户程序,但是会出现乱字符等问题,代理没有正常运行,问题出在代理上,需要将返回的参数用[out]标记,这样汇集器便能正常工作了。
4.对注册表的修改,最好使用DCOMCNFG和OLE/COM viewer配置
(1)将接口对象的进程内服务器设为代理DLL文件
(2)将代理进程设为server.EXE文件,本地服务器可以不设
(3)修改DCOMCNFG,将DCOM设为[开启],默认身份验证为[无],模拟级别为匿名5.现在可以使用分布通信了,客户只要安装 代理和GUI 就可以了6.要在定制接口中使用字符串,必须在IDL文件中使用[string][in]