请教:有关com组件是否需要idl文件的问题??(在线等待各位的帮助)

xklc 2003-07-09 03:30:49
各位好:
我有一个com组件,是使用delphi写的。但我需要在VC环境下使用这个组件。根据我所查得的资料,在VC下使用这个组件,是需要delphi所生成的IDL文件来生成对应的.H和.C文件的。但我目前没有这个文件,请问在VC环境下使用时,我是否需要这个idl文件,如果不需要,我在在VC下使用这个com组件,该如何使用
菜鸟一个,请多多关照。
...全文
88 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
xklc 2003-07-11
  • 打赏
  • 举报
回复
结帐了
xklc 2003-07-11
  • 打赏
  • 举报
回复
问题已经解决,谢谢上面各位的帮助.
xklc 2003-07-10
  • 打赏
  • 举报
回复
to lcp(dupi):
谢谢你的回答。根据我刚才所查看的资料,其实idl文件就是oleview中可以看到的部分。
根据这个,我已经生成了对应的idl文件。再根据这个文件,我生成了对应的.h和.c文件,现在除了调用函数有问题之外,其他问题都已经解决了
lcp 2003-07-10
  • 打赏
  • 举报
回复
第3步应该是说:
你需要知道这个com的class ID 和 interface ID -- 128位的整数;
然后把这两个数定义成易于理解的IID_YouIID和CLSID_YouClass常数,方便程序中使用。

最好是能够得到这个dll的接口定义文件,这样你能知道如何调用这个COM;
如果没有,就用VC的工具oleview来查看com的接口吧。
xklc 2003-07-09
  • 打赏
  • 举报
回复
多谢ldsjlzy(小李) 的回答,第三步能不能说清楚些。
ldsjlzy 2003-07-09
  • 打赏
  • 举报
回复
1.Regsvr32.exe 注册你的*.dll
2.用oleview查出注册的com的类和接口的GUID: CLSID_YouClass和IID_YouIID的GUID.
3.用const IID IID_YouIID = {............com对象GUID..........}
和 const CLSID CLSID_YouClass = {...............接口GUID........}
4.hr = CoCreateInstance(.......)
hr成功后就可使用了。
xklc 2003-07-09
  • 打赏
  • 举报
回复
各位,问题还没有得到解决。
xklc 2003-07-09
  • 打赏
  • 举报
回复
to DoubleJiang(Double):
您好,我程序中本身并没有ACTIVEX控件。我是调用别人已经用DELPHI写好的COM控件,对方只给了我一个com编写的.dll文件。所以么 :(
DoubleJiang 2003-07-09
  • 打赏
  • 举报
回复
如果你在VC中调用 ActvieX,应该已经生成了相应的 class, 你直接用class就好了呀?
xklc 2003-07-09
  • 打赏
  • 举报
回复
to lcp(dupi):
你好!多谢您的解答,但是我没有函数的原型,在VC环境下调用ACTIVEX控件,需要对应的函数原型,请问怎么解决
DoubleJiang 2003-07-09
  • 打赏
  • 举报
回复
com 和语言无关是因为使用了 idl 文件,如果你没有你怎么知道com提供了什么样的接口呢
xklc 2003-07-09
  • 打赏
  • 举报
回复
如果我直接引入这个空间,对应的IID之类的东西是否需要自己去注册表里面查
lcp 2003-07-09
  • 打赏
  • 举报
回复
com组件是语言无关的,不需要idl文件重新编译。
在vc下使用用delphi制作的com,需要:
1 注册该组件;
2 知道该组件的uuid;
3 就可以用CoCreateInstance()等函数来创建一个该组件的实例。
budzhang 2003-07-09
  • 打赏
  • 举报
回复

印象:
很久没有看com了,vc里好像用#import指令直接可以引入com组件。

3,245

社区成员

发帖
与我相关
我的任务
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
  • ATL/ActiveX/COM社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧