利用size_is转递一个BYTE的数组到DCom中,为何失败呢?

romijn 2003-03-14 01:00:07
[id(17), helpstring("method WriteByte")] HRESULT WriteByte( [in] long num, [in, size_is ( num )] BYTE *arr );
...全文
10 点赞 收藏 9
写回复
9 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
romijn 2003-03-19
up
回复
nelsonc 2003-03-18
这个东西是用来把你的调用转换成远程调用的,如果没有他,你就只能做同一个套间的调用。
详细资料可以参考MSDN中的文档,说的很清楚的。
回复
romijn 2003-03-18
up
回复
romijn 2003-03-18
这个成功了,但是我的WriteStream却怎么也不成功。

[id(17), helpstring("method WriteByte")] HRESULT WriteStream( [in] long num, [in] IStream *pStream );
我在同一个程序里调试通过,放到了远程的服务器就不行了,pStream不为空,但是也读不出东西,里面全为空!!
回复
nelsonc 2003-03-17
就是我说的问题。按我说的做,没错的。
你应该生成serverps.dll然后注册这个dll,就可以了。
回复
romijn 2003-03-17
重新说明:
我的DCom程序是exe程序,在服务器和客户机上面都用 server.exe -regserver程序进行了注册.
并且我写得代码都是从msdn上面,如何高效的传输数据上面看到的!不知道有何不妥!!我的程序可以运行连通,主要是服务端的函数里面检测到arr的内容不是我在客户端添入的内容,而是一些随机的内容!
回复
romijn 2003-03-17
谢谢!!
确实是按照你说的那样子,能不能解释为什么?
回复
nelsonc 2003-03-14
你没有编译或注册proxy/stub。
用开发环境,到你的目录下,运行 (xxx是你工程的名字)
nmake /f xxxps.mk
regsvr32 xxxps.dll
就可以了。
如果是远程调用,需要在两台电脑上注册proxy/stub的动态连接库。
回复
romijn 2003-03-14
up
回复
相关推荐
发帖
ATL
创建于2007-09-28

3214

社区成员

ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
申请成为版主
帖子事件
创建了帖子
2003-03-14 01:00
社区公告
暂无公告