• 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 > IDL接口:BYTE传入/传出参数的问题

IDL接口:BYTE传入/传出参数的问题

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

佚名通过本文主要向大家介绍了idl接口,idl 大气校正 接口,idl,idl是什么意思,envi idl技术殿堂等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题: IDL 接口: BYTE 传入/传出参数的问题
描述:

接口定义如下:
[
object,
uuid(613A0F7A-6D46-45B0-A446-787B426F0E53),
dual,
nonextensible,
helpstring("TEST Interface"),
pointer_default(ptr)
]
interface TestI: IDispatch{
[id(1), helpstring("TestMethod")] HRESULT TestMethod(
[ptr, in, size_is((int)theKeySize), length_is((int)theKeySize)]BYTE* theKey, 
[in] ULONGLONG theKeySize, 
[ptr, in, out, size_is((int)*theResultSize), length_is((int)*theResultSize)]BYTE* theResult, 
[in, out] ULONGLONG* theResultSize
);
};
在客户端调用的时候如下:
BYTE sKey[1024];
ULONGLONG ullKeySize = sizeof(sKey);
::ZeroMemory(sKey, '\0', ullKeySize);
strcpy(sKey, "ABCDEFGHIJKLMNOPQRSTUVWXYZ");
BYTE sResult[1024];
ULONGLONG ullResultSize= sizeof(sResult);
pTestI->TestMethod( sKey, ullKeySize, sResult, &ullResultSize );
可是在服务端程序却只能收到如下内容:
sKey = 'A'
ullKeySize = 1024
如果TestMethod实现函数里面对sResult 和 ullResultSize 赋值, 也只能传出sResult[0] 和 ullResultSize.
请问我应该怎样定义接口才可以啊?
*因为这个函数需要用于2进制文件的处理, 所以不能用BSTR.
方便的话能用MSN联系也好, vvlei@msn.com


解决方案1:

[id(1), helpstring("method TestAr")] HRESULT TestAr([in, ptr, size_is(nSize)] BYTE* pbInStr, 
[in] int nSize,
[in, out, ptr, size_is(*nOutSize)] BYTE* pbOutBuf, 
[in, out] int* nOutSize);
把接口象上面这样定义应该就可以了。


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

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

  • idl定义接口时,参数相互包含如何解决
  • 不使用IDL如何定义一个接口?
  • 怎样在IDL里设置使接口具有默认成员?
  • 一个IDL文件如何引用另外一个IDL中的接口定义?
  • 想通过COM接口设置一个回调函数,如何定义idl?
  • IDL接口处的VARIANT变量,如何在类的实现里面转化为char类型的阿variant里面原来是BSTR类型的
  • idl文件中定义的接口方法的参数可以使自定义类型么,可以的话怎么加?
  • 在IDL把接口写在library里和写在外边有什么区别?看例子
  • idl文件中,如何调用另一个接口。
  • 如何在COM接口中传递IDL基本类型的数组

相关文章

  • 2017-06-05 关于在DLL中使用声音资源的问题
  • 2017-06-04 我有一个tlb文件,里面有个事件接口,请问用什么方法可以简单在客户端实现连接点
  • 2017-06-04 有关BHO的一个问题-如何在一次invoke中准确获取父链接-提问jameshooo
  • 2017-06-04 请教一个控件在Excel中不能正确显示的问题。
  • 2017-06-05 FreeLibraryDLL处理Webbrowser内存泄露
  • 2017-06-04 学习RPC遇到问题
  • 2017-06-05 关于多线程。。
  • 2017-06-05 errorC2440:“static_cast”:无法从“int__thiscallCCreateCardDlg::void”转换为“AF
  • 2017-06-05 关于对话框和子线程的问题,对话框获得了焦点,线程竟然暂停了,奇怪?
  • 2017-06-04 VC60无法使用Activex?

文章分类

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

最近更新的内容

    • MFC现在大家用他来做什么?
    • 下载OLEControls96的链接
    • 第一次执行SetEventhandle后,WaitForSingleObject的返回值是WAIT_OBJECT_0,而第二次却不是,为什么?
    • errorC2440:“类型转换”:无法从“overloaded-function”转换为“LPTHREAD_START_ROUTINE”
    • 又是关于ActiveX控件下载的问题,希望大家都来讨论一下!!!!
    • ActiveX控件MFCSysListView32的界面问题,怎么没有边框呢?
    • 第一次执行SetEventhandle后,WaitForSingleObject的返回值是WAIT_OBJECT_0,而第二次却不是,为什么?
    • 如何在单文档中使用ActiveX控件那?
    • shcokwaveloadmovie的问题
    • 求Atlb和Atlh和Atli三个文件之间关系

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

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