困惑问题,加急的问题!!!在VC调用Delphi的COM对象时!!不知道大家碰到过没有???(100分)

  • 主题发起人 主题发起人 快乐
  • 开始时间 开始时间

快乐

Unregistered / Unconfirmed
GUEST, unregistred user!
用VC的【Class Wizard】中,使用
【Add Class】按钮中的【From a Type Libary】
为什么不能导入Delphi开发的COM对象的TLB文件(类型库)???
VC总是报错“The type librarydo
es not contain any IDispatch Capable type
information!”!!不能生成*_i.c和*.h文件!为什么呀??
那位高手解决一下!!!!急呀!!
 
顶一下!
 
??????????????
 
你的 com 没有从 idispatch 继承吗?
 
对拉,这明明就是你的类型库的问题,与Delphi无关,这样,
贴上你的IDL文件就知道了。
 
我都是按Delphi的缺省作的!

作Delphi的COM Library缺省是从IUnknown继承的!
 
那你就可以改为从IDispatch继承,也就是使用自动化了。
 
to xiangya,
你可以试试嘛!一改接口,就出现编译错误了!!
 
这是Delphi的问题,这个类型库,完全重新建就可以了,只是多了复制的手脚,
顺便说一句,版本有很大关系。Delphi6.02,也许最好了。
 
to xiangya,
谢谢你的关注!
我新建了一个COM Object,如何修改IUnknown为IDispath,没有添加任何方法,
一运行,就发生编译错误!请教一下你们平时是怎么做的???
我用的是Delphi5,
 
抱歉!敲错了!
to xiangya,
谢谢你的关注!
我新建了一个COM Object,然后修改IUnknown为IDispath,没有添加任何方法,
一运行,就发生编译错误!请教一下你们平时是怎么做的???
我用的是Delphi5,
 
IDispatch = interface(IUnknown)
['{00020400-0000-0000-C000-000000000046}']
function GetTypeInfoCount(out Count: Integer): HResult;
stdcall;
function GetTypeInfo(Index, LocaleID: Integer;
out TypeInfo): HResult;
stdcall;
function GetIDsOfNames(const IID: TGUID;
Names: Pointer;
NameCount, LocaleID: Integer;
DispIDs: Pointer): HResult;
stdcall;
function Invoke(DispID: Integer;
const IID: TGUID;
LocaleID: Integer;
Flags: Word;
var Params;
VarResult, ExcepInfo, ArgErr: Pointer): HResult;
stdcall;
end;

难道我还要实现
function GetTypeInfoCount(out Count: Integer): HResult;
stdcall;
function GetTypeInfo(Index, LocaleID: Integer;
out TypeInfo): HResult;
stdcall;
function GetIDsOfNames(const IID: TGUID;
Names: Pointer;
NameCount, LocaleID: Integer;
DispIDs: Pointer): HResult;
stdcall;
这三个方法吗???
 
我想知道,其它各位写给其它程序用的COM Object,是如何作的?也是改过这个接口继承吗??
 
不用实现那些方法,已经有基类了,TAutoData好像是,
你要注意,选择向导的时候,不要随便。因为COMObject和AutoObject是有区别的。
我想你的东西,应该选择后者。而后者也即自动化对象,直接继承自IDispatch
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
881
import
I
S
回复
0
查看
928
SUNSTONE的Delphi笔记
S
后退
顶部