• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >vc/mfc > DCOM中数组,指针传递问题?极度郁闷(高手请进,分不限)

DCOM中数组,指针传递问题?极度郁闷(高手请进,分不限)

作者:佚名 字体:[增加 减小] 来源:互联网 时间:2017-06-04

佚名通过本文主要向大家介绍了dcom是什么,9955dcom最近十天更新,8844dcom更新后地址,dcom配置,9955dcom首页等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题: DCOM中数组,指针传递问题?极度郁闷(高手请进,分不限)
描述:

客户程序的对话框有三个文本框,接受用户输入整数变量a,b,c的值:
程序如下(一部分,用C简单写)
 
   unsigned char ***m;
   m=(unsigned char ***)malloc(a*b*c);
   for(i=0;i<a;i++)
   for(j=0;j<b;j++)
   for(k=0;k<c;k++)
  m[i][j][k]=读入值
调用:f(m);   //f为客户程序的一函数,对m进行处理。
现在我想把f函数改成用DCOM实现,即改为DCOM中的一个方法,注册到另一台机子,实现远程调用。
1,我直接在DCOM的接口方法中定义:
HRESULT f([in,out]long ***m); //这种方法发现数据根本没能传输,客户端调用f(m)出错。
2,我把a,b,c固定掉,如a=b=c=100;
客户定义:m2[a][b][c], 
   for(i=0;i<a;i++)
   for(j=0;j<b;j++)
   for(k=0;k<c;k++)
    m2[i][j][k]=m[i][j][k]; f(m2);//调用
DCOM中定义方法:
   STDMETHODIMP Cpp25::f( long m[100][100][100])
这种方法可以实现,但是a,b,c是固定值的。
各位大哥大姐,我该怎样定义f(long.....),才能处理a,b,c是变化的问题?????
是用指针传递,还是有什么方法定义动态数组???dcom方法中数组参数好像都要是固定大小的,
可不可以在 dcom中定义方法:
STDMETHODIMP Cpp25::f( long m[a][b][c])  //其中a,b,c是由客户端传递过来的,不确定性的???


解决方案1:

HRESULT proc ([in] short m, [in] short n, [size_is (m, n), in, out] short **ppshort);
xstring(麻雀) 说得对,这样做可以保证传递的参数是动态变化的!

解决方案2:

HRESULT proc ([in] short m, [in] short n, [size_is (m, n), in, out] short **ppshort);
以上ppshort是一个长度为m的数组,其中每个元素是一个short *,每个short *又是一个长度为n的short数组。
所以你的可以写成
HRESULT f ([in] short a, [in] short b, [in] short c, 
  [size_is (a, b, c), in, out] long ***m);
这样
m是一个长度为a的long **数组, m [x]中是一个long **
m [x]是一个长度为b的long *数组,m [x] [y]是一个long **指针
m [x] [y]是一个长度为c的long数组, m[x] [y]是一个long *指针
m [x] [y] [z] 中是一个long


分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • DCOM中的多串口通讯
  • ★★★关于DCom服务器★★★
  • net中调用dcom对象如何释放
  • 问:不同网段之间可以使用DCOM通讯么?500分
  • DCOM如何走Internet?
  • dcom的问题
  • dcom的问题
  • 请问dcom能够实现这样的问题吗分不够另外给分
  • 一个比较朦胧的问题com/dcom/com+问题,朋友门都来看看
  • Dcom传人输出型字符串的问题!

相关文章

  • 2017-06-05 如何获得屏幕上具有输入焦点的窗口包括其他进程的
  • 2017-06-04 Sourcecodefor<<ATLInternals>>
  • 2017-06-04 求com相关文章
  • 2017-06-05 VC60PlatformSDK哪个版本带有InternetDevelopmentSDK
  • 2017-06-04 MFC中几个对话框共用一个套接字
  • 2017-06-05 ActiveX在XP,win2003下运行正常,win7运行时ie就会崩溃
  • 2017-06-05 求助:下面的语句究竟是哪里错了?
  • 2017-06-04 Windows2003下使用vc60编写WMi程序
  • 2017-06-04 调用Invoke,如何传多个参数?
  • 2017-06-05 如何引用返回值为自定义结构的DLL中的函数?

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • 请教,stl的string类可有像MFC中CString中Format函数一样的功能,可以方便将不同类型的数据组合在一个串中,谢谢!
    • 如何在两个进程两个不同exe文件之间传递变量数据?
    • activex控件cab更新会提示重启电脑
    • 用自己写的SourceFilter接收网络传来的wav文件,怎么在graphedit放不了啊?
    • 如何用C++编写的COM控制WORD的行距?
    • 最简单的调用进程内COMDLL的问题
    • 不使用脚本,如何能调用到ie中的activex的自定义方法
    • 新手写DLL,请教?
    • 我做了一个基于MFC的程序,现在想把它做成ActiveX控件,可以在Web中运行,就像是整个程序嵌入到网页中一样,请问有没有直接的方法可以
    • 请教半对数坐标系中画线取点问题

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有