利用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 );
...全文
39 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
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

3,245

社区成员

发帖
与我相关
我的任务
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
  • ATL/ActiveX/COM社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧