• 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 > 新添加的接口,在delphi中不能访问,有没有人遇到过?200分奉上

新添加的接口,在delphi中不能访问,有没有人遇到过?200分奉上

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

佚名通过本文主要向大家介绍了世界上有没有外星人,有没有人告诉你,有没有人告诉你吉他谱,有没有人告诉你陈楚生,有没有人告诉你歌词等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题: 新添加的接口,在delphi中不能访问,有没有人遇到过?200分奉上
描述:

用ATL写的控件,本来有一个接口:
[
object,
uuid(26AECA99-7596-49AD-866C-54D19FF54D2A),
dual,
helpstring("IMit Interface"),
pointer_default(unique)
]
interface IMit : IDispatch
{
[id(1), helpstring("method FirstInterface")] HRESULT FirstInterface();
};
在vc/vb/delphi下都运行正常,然后需要添加功能,在com接口不能更改的原则下,添加新的接口:
[
object,
uuid(A9EBFB14-3DA6-4984-A0C6-C7AF7AE276A0),
dual,
helpstring("IMit2 interface"),
pointer_default(unique)
]
interface IMit2 : IMit
{
[id(2), helpstring("method SecondInterface")] HRESULT SecondInterface();
};
vb/vc下使用没问题,但是delphi下调用IMit2中的SecondInterface每次都是异常,why???知道的同学快来发言。200分奉上


解决方案1:

查明,应该是delphi处理多接口时的一个bug?不好说,反正他每次调用接口2中的方法,都多偏移了一个接口1大小的偏移量,adjustor thunker方面的东西,去msdn看看吧!

解决方案2:

首先,你将SecondInterface()中的代码屏蔽,用来排除是SecondInterface()中的代码造成的异常。再就是SecondInterface是否有传参数,会不会是参数导致的。最后,也是最可能解决的途径,那就是重新在Delphi中将ATL控件导入,因为你虽然在操作系统中注册了该ATL控件,但Delphi中不一定更新了,所以你调用时一定会异常,而IMit是以前就有的,所以调用IMit接口就不会出错。建议你采用类似于C++中的new 方法在Delphi中创建IMit2对象,这样就可以捕获到异常了!好运!

解决方案3:

帮楼主顶!,关注!

解决方案4:

重新注册一下,看注册信息是否成功

解决方案5:

估计是一些注册的信息没有被更新,尤其是参考的tlb文件在注册表中的信息(tlb文件地址)可能没有被更新!

解决方案6:

先吧原来的注册取消,然后再重新注册
或者看看注册表里面有没有SecondInterface注册成功的信息

解决方案7:


  楼上的说得很到位了,我再补充一点,那就是DELPHI生成的包装代码也需要更新.


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

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

  • 很妖的问题,有没有人碰到过?给思路,有助于解决问题的有分
  • 有没有人使用WTL啊?请进来交流一下
  • directshow有没有人用过coreavc解h264码流
  • 有没有人遇到我这种情况啊
  • 有没有人遇到这样的link错误?
  • 有没有人可以贴一个完善的hookwsasend和wsarecv的方法给我
  • 有没有人会STL文件的拓扑
  • 一个简单问题到底有没有人会啊!!!在线等待
  • 大家有没有用过web控件,就是那个shdocvwdll,有没有人能帮我?
  • 有没有人能写一个正确的Wookbook::SavaAs函数出来

相关文章

  • 2017-06-05 高分寻找VC写的线程池类!
  • 2017-06-05 dll注入与线程
  • 2017-06-04 是不是一个工程代码多了,编译的时候IDE不会全部编译?
  • 2017-06-05 用vc编译的dll在vb中引用不了,是什么原因
  • 2017-06-05 关于WaitForSingleObject()函数的一个小菜问题
  • 2017-06-05 为一个已运行的程序加入局部键盘钩子时,如何得到程序的INSTANCE
  • 2017-06-04 请教,如何用activeX控件
  • 2017-06-05 如何屏蔽consoleapplication的dos窗口,并且将输出重定向?
  • 2017-06-04 com控件的函数里面如何1m大小的二进制流?
  • 2017-06-05 如何在类里调用线程执行函数,100分相送!

文章分类

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

最近更新的内容

    • FindWindow用法??
    • activex控件在本地可以运行,怎么在别人电脑运行啊
    • COM是一种将类的抽象与实现分离开的技术,但是接口函数要访问类的数据成员,怎么实现分离呢?难道提供接口的人不需要实现函数只需要给个
    • dllhost出错??????
    • 如何用Installshield将DLL组件自动注册?急,在线等
    • 能否给出一个简单的dll制作及其调用的例子(含注释)?
    • 请教IOCP线程访问动态数据多CPU线程同步!!
    • 急求!!用Atl编写的com组件中如何将数据写入文件中(不用MFC),在线等待!
    • 怎么样RemotingtheWindowsMediaPlayerControl?
    • 请问:如何获取LPDISPATCH对象的属性。

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

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