社区
ATL
帖子详情
请教远程COM与本地COM的区别,如何创建和布署一个远程COM?
dragon_zqw
2003-11-13 12:04:06
请教远程COM与本地COM的区别,如何创建和布署一个远程COM?
...全文
85
17
打赏
收藏
请教远程COM与本地COM的区别,如何创建和布署一个远程COM?
请教远程COM与本地COM的区别,如何创建和布署一个远程COM?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
17 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
dragon_zqw
2003-11-19
打赏
举报
回复
问题总于解决了,在远程调用时,必须要通过代理桩子DLL,才不致于在传递参数时出现问题。
lop5712
2003-11-17
打赏
举报
回复
楼主的代理占位程序出错,请确保在idl文件中使用如下的类似声明
HRESULT Log2( [in, string] WCHAR funcname,
[in] param_count,
[in, size_is( param_count )] VARIANT *param );
当要传递字符串时,指明[string]属性,且必须使用UNICODE编码,即使用WCHAR,而不要使用unsigned char
如果上面无效,需要根据程序具体确定
dragon_zqw
2003-11-17
打赏
举报
回复
to lop5712(LOP):
周末我查了资料,应该用你说的方法可以解决,但由于DCOM的配置要繁琐一些,我将我的COM组件配置成到COM+应用程序,现在已经远程连接成功,但是又出现问题,如下:
组件中有
STDMETHODIMP CLog::Log2(unsigned char *funcname, int param_count, VARIANT *param)
一个接口,后两个参数想实现一个变长数组,在本机调用正确,但在远程调用时,组件中funcname只能接收到字符串中的第一个字符,后面的就没有了,而param的类型一直为VT_EMPTY,不知何故。
本人水平尚浅,比如接口函数中的参数用const修饰,传递一个容器等,在COM中都好像都不能实现,不知能够与否,希望对COM熟悉的朋友能够帮我解释一下。
lop5712
2003-11-17
打赏
举报
回复
哈哈,真是抱歉,竟然写成WCHAR,字符串再怎么也都得是个指针啊,请改成WCHAR *funcname
dragon_zqw
2003-11-17
打赏
举报
回复
师兄在COM方面应该造诣很深了,还望多多指点。
我看的COM原理及应用一书中没有这些方面的讲解啊,是不是还得在ATL的书籍中查找相关知识,我还需要看哪些方面的书呢?
dragon_zqw
2003-11-17
打赏
举报
回复
师兄在COM方面应该造诣很深了,还望多多指点。
我看的COM原理及应用一书中没有这些方面的讲解啊,是不是还得在ATL的书籍中查找相关知识,我还需要看哪些方面的书呢?
dragon_zqw
2003-11-17
打赏
举报
回复
太感谢了,但是我在用你说的方法,出现下面的错误提示:
error MIDL2072 : inapplicable attribute : [string] [ Type 'wchar_t' ( Parameter 'funcname' ) ]
不知该怎么办?
dragon_zqw
2003-11-16
打赏
举报
回复
非常感谢!明天去测试一下,到时到付帐哈!
lop5712
2003-11-16
打赏
举报
回复
想必楼主使用CoCreateInstance来创建实例的,而不是使用CoCreateInstanceEx,即没有在程序中硬编码远程服务器地址,而使用注册表项来指定。
如果如上,请确保CoCreateInstance传递的是CLSCTX_REMOTE_SERVER或包含了CLSCTX_REMOTE_SERVER(可能有误,记不到了)的参数,如:CLSCTX_SERVER。
请确保注册表中<服务器的CLSID>注册表项下没有LocalServer32注册项,估计楼主使用CLSCTX_SERVER标志,此标志会先查看注册表项下有没有InProcServer32,再看有没有LocalServer32,最后才会查看<服务器的AppID>下有没有RemoteServer(也就是楼主用dcomcnfg.exe配置的远程计算机地址)。
所以请查看下<服务器的CLSID>注册表项下有没有LocalServer32注册表项,而它所指的EXE可能已经不在客户机上的相应位置,导致创建失败。
dragon_zqw
2003-11-14
打赏
举报
回复
我正在看<COM原理及应用>中的分布式DCOM,写了一个测试COM,但客户程序不能创建实例,客户机器安装XP,操作如下:
1)用ATL COM向导中选第3项生成一个SERVICE[EXE],实现一个接口和一个HELLO()。
2)将该COM组件安装到了局域网中一台WIN2000的机器,在客户程序机器的DCOMCNFG.EXE程序中对该组件进行了下列设置:
常规:身份验证级别为:连接
应用程序类型显示为本地服务器
位置:选中“在以下计算机上运行程序”,并填入了安装COM组件的机器名
安全性:均使用默认值
终结点:“...默认系统协..."
标识:选中“下列用户”,并填入了本机登录的用户名和密码。
安装COM组件机器中组件的配置如下:
常规:身份验证级别为:连接
应用程序类型显示为本地服务器(不知这是否正确)
位置:选中“在此计算机上运行程序”
安全性:均使用默认值
终结点:“...默认系统协..."
标识:选中“下列用户”,并填入了客户程序机器登录的用户名和密码。(两台机器的标识设置一样)
fangyan2003
2003-11-14
打赏
举报
回复
本地COM分为两种,一种是进程内组件即服务器组件与客户进程在同一进程空间,也就是进程内的通讯,这样通讯速度比较快,但是程序不稳定,另一种是进程外组件即客户程序与服务器组件在同一台机器上的不同进程空间,也就是客户程序与组件在不同的进程空间中,通讯方式为本地过程调用(LPC),涉及到进程间的通讯,程序运行比进程内组件稳定,但是,速度较慢
远程COM是指服务器程序与客户程序运行在不同的机器上,两者依靠远程过程调用(RPC)进行跨机器通讯,这样设计到网络,安全处理,伸缩性等一系列问题,远程COM就是DCOM,现在是COM+
不过好像Microsoft放弃了COM技术,取而代之的是.NET组件,Webservice
luohualiushui
2003-11-14
打赏
举报
回复
楼主应该先看看书,你的问题涉及列集、散集,dcom配置等等,不是三言两语能说清楚的
客户调用远程com应该和调用本地服务一样,这就是位置透明性
ablefirst
2003-11-14
打赏
举报
回复
帮你UP,
关注!
dragon_zqw
2003-11-14
打赏
举报
回复
ATL向导中如何生成一个远程COM,以及如何在客户端程序中调用该远程COM呢?
dragon_zqw
2003-11-14
打赏
举报
回复
麻烦顶一下啊!
dragon_zqw
2003-11-14
打赏
举报
回复
请COM高手指点
jEditor
2003-11-13
打赏
举报
回复
远程COM是一个分布式的COM,提供有网络连接功能.
【案例】【技术难点(已解决)】vue 线上项目访问本地资源 访问不到、跨域等问题的解决方法
更详细的video标签属性介绍:https://www.runoob.
com
/tags/tag-video.html。对于项目如何打包上线,这里笔者就不多说啦,因为会遇到这个需求的肯定会
布署
项目。真正需求就是要访问本地多个视频已打包好的项目中播放并循环播放。nginx.conf中的指定存放资源的路径是否正确;在访问线上项目,从访问的电脑本地获取资源。video_url是为了动态获取访问地址;autoplay表示视频准备好就播放;nginx启动成功,但访问不到资源。前面两个都没问题,就是项目访问不到。
国内部署Stable diffusion 无法安装Gfpgan
每次进行到cd ~/stable-diffusion-webui;./webui.sh 这一部的时候就会出现卡在install Gfgan 然后报错。
请教
有没有大神知道这是咋回事?我是按照晚上这篇教程来安装的。
我的WCF之旅(1):
创建
一个简单的WCF程序
[原创]我的WCF之旅(1):
创建
一个简单的WCF程序 写在前面在Microsoft提出.NET战略以来, 先后推出了一系列产品和技术, 这些产品和技术为我们在.NET平台下建立企业级的分布式应用提供了很大的 便利。这些技术和产品包括:.NET Remoting,XML WebSerivce,WSE(2.0,3.0),Enterprise Service, MSMQ ......
OpenFlow:Enabling Innovation in Campus Networks译文
摘要:这篇白皮书提出了openflow:一种研究者可以他们日常使用的网络中运行实验协议的方法;openflow是一种以太网交换机,带有内部流表和一种用以添加/删除流实体的标准接口,我们的目标是鼓励供应商添加openflow属性到他们产品交换中,为了在大学校园网的骨干网和配线柜中
布署
openflow;我们相信openflow是个很实用的折衷方法,一方面能让研究者们可以在异构的交换机中以统一的方式、以
[读文综述] openflow:在校园网携手创新
摘要这篇白皮书提出了openflow:一种研究者可以他们日常使用的网络中运行实验协议的方法;openflow是一种以太网交换机,带有内部流表和一种用以添加/删除流实体的标准接口,我们的目标是鼓励供应商添加openflow属性到他们产品交换中,为了在大学校园网的骨干网和配线柜中
布署
openflow;我们相信openflow是个很实用的折衷方法,一方面能让研究者们可以在异构的交换机中以统一的方式、以线速和端口高密集中运行实验;另一方面,供应商不需要暴露他们产品交换机的内部工作机制,除之此外,允许研究者在真实的流
ATL
3,245
社区成员
48,537
社区内容
发帖
与我相关
我的任务
ATL
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
复制链接
扫一扫
分享
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章