• 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 > 怎么在接口方法中传递其它接口参数?

怎么在接口方法中传递其它接口参数?

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

佚名通过本文主要向大家介绍了java调用接口方法,接口方法,接口测试方法,接口中的方法,rs485接口接线方法等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题: 怎么在接口方法中传递其它接口参数?
描述:

//我写两个组件一个aa.dll,另一个bb.dll,其中aa.dll有一个接口Iaaa, bb.dll有一个接口Ibbb,接口Ibbb的一个方法Hello的一个参数为Iaaa *aaaa, 但是编译总是出错。
//第一个组件aa.dll
import "oaidl.idl";
import "ocidl.idl";
[
object,
uuid(731826A0-58DA-40E3-8B8A-1756D61CDDB5),
dual,
helpstring("Iaaa Interface"),
pointer_default(unique)
]
interface Iaaa : IDispatch
{
[id(1), helpstring("method Hello")] HRESULT Hello([out] BSTR * bstr);
};
[
uuid(FC64D9A4-81EA-40B0-84D9-05443812DBA3),
version(1.0),
helpstring("aa 1.0 Type Library")
]
library AALib
{
importlib("stdole32.tlb");
importlib("stdole2.tlb");
[
uuid(93FC08FE-BA1C-44AF-A7C9-7E81CE8D28E2),
helpstring("aaa Class")
]
coclass aaa
{
[default] interface Iaaa;
};
};
//该组件生成aa.dll
//该接口方法返回一个字符串.
STDMETHODIMP Caaa::Hello(BSTR *bstr)
{
// TODO: Add your implementation code here
*bstr = _bstr_t("Hello aaa !");
return S_OK;
}
//第二个组件bb.dll
import "oaidl.idl";
import "ocidl.idl";
[
object,
uuid(16B6337A-501C-4EE4-AAEB-913BC5AB9524),
dual,
helpstring("Ibbb Interface"),
pointer_default(unique)
]
interface Ibbb : IDispatch
{
[id(1), helpstring("method Hello")] HRESULT Hello([in] Iaaa *aaa , [out] BSTR * bstr);//这行的输入参数Iaaa 出错。
};
[
uuid(680357C2-1C0D-464D-8B98-CB7EAA6E32E1),
version(1.0),
helpstring("bb 1.0 Type Library")
]
library BBLib
{
importlib("stdole32.tlb");
importlib("stdole2.tlb");
[
uuid(218ACE7C-8358-4D65-BAB4-0FD11DE4081A),
helpstring("bbb Class")
]
coclass bbb
{
[default] interface Ibbb;
};
};
在第二个组件工作空间的StdAfx.h中加入
#import "D:\VC++\Test\aa\Debug\aa.dll" raw_interfaces_only, raw_native_types, no_namespace, named_guids
当编译时提示:
D:\VC++\Test\bb\bb.idl(18) : error MIDL2025 : syntax error : expecting a type specification near "Iaaa"
D:\VC++\Test\bb\bb.idl(18) : error MIDL2026 : cannot recover from earlier syntax errors; aborting compilation 
怎么办?


解决方案1:

同意楼上

解决方案2:

你要把aa.idl import到bb.idl中,不然它怎么知道Iaaa是接口呢!


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

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

  • 在原有接口中新增方法调用却异常
  • 用什么软件方法可以查看某个程序支持的所有接口和用法?
  • 调用接口ShapesAddPicture后,excel进程无法退出
  • 接口方法重复了怎么办?
  • 怎么调用Com中不同接口中的方法
  • 如何在vcATLdll的接口方法中定义传引用的参数?
  • 怎么在接口方法中传递其它接口参数?

相关文章

  • 2017-06-05 VC串口编程的问题
  • 2017-06-04 哪位知道VC2003中有没有MSComm这个ActiveX控件?
  • 2017-06-05 对于修改了的文件,windows是如何标记的呢?
  • 2017-06-04 请问IE的收藏夹有没有事件触发?或者说有什么连接点可以知道??DISPID_ADDFAVORITE吗?
  • 2017-06-04 自己写ocx控件读写文件怎样把文件内容传到javascript中,大家帮忙啊!
  • 2017-06-04 MFC开发控件时调用的类无法析构,求教
  • 2017-06-04 如果VC从头开始学到COM大概每天多少小时要多长时间呢。
  • 2017-06-04 BCB怎样写COM+?哪位高手指点一下?给个简单的例子最好
  • 2017-06-04 开发ACTIVEX服务端控件
  • 2017-06-05 请问projectsetting里的microsoftFolundationClasses里的选项有什么含义?

文章分类

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

最近更新的内容

    • 求:如何知道客户端dll控件的版本号?
    • 关于OnCtlColor
    • 有关插入符(caret)显示的问题
    • 着火了!!!高手请进
    • 使用适应性byte数组传输二进制数据地问题
    • 程序运行4小时后死机高手来谈谈防止内存泄漏的问题啊~~~~~~~100分
    • 关于配置的问题-DCOM真的要主域控制器吗?
    • 为什么没人回答,同样的问题(ActiveX,vc,dephi我第三次问了,答对了给300分
    • 初学COM,com和Delphi程序之间如何传字符串呀?
    • 有没有人有brew开发中sampleposdet官方例子的详细讲解的。注释也可以。

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

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