绝世easy问题,不来抢分别后悔哦!

holy_cyt 2002-07-23 08:48:20
com中要在客户端应用服务器端定义的接口ID,有三种方法(不知我说的对不对)
1.#import "xxx.idl"

2.#import "xxx.tlb" named_guid

3.#include "xxx.h"
#include "xxx_i.c"

这三种方法的区别是什么,各在什么场合下用?
盼望高手给予充分详尽的说明!!!
分不够可以再加!!!!!!!!!!!!!!
...全文
78 13 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
FFXI 2002-07-23
  • 打赏
  • 举报
回复
其实本质上是一样的。
有了IDL文件,可用midl编译得到TLB和 .H 和 .C。

而#import "xxx.tlb" (也可以是带有类库信息Dll,ocx,exe)
VC会自动生成 xxx.tlh(Head) 和 xxx.tli.(Implementation & definitions), 将其加入项目编译。

sun9989 2002-07-23
  • 打赏
  • 举报
回复
up
_liang_ 2002-07-23
  • 打赏
  • 举报
回复
记住了,呵呵!
zxydg 2002-07-23
  • 打赏
  • 举报
回复
我用第一种
holy_cyt 2002-07-23
  • 打赏
  • 举报
回复
我发现的问题是:
用第三种方法时,若客户端引用的是 &IID(接口GUID的地址)。
就编译不通过,而用第二种方法就可以。何解???????

偏偏ATL中的好多class都要求 &IID 模版参数:(
rokia 2002-07-23
  • 打赏
  • 举报
回复
我也關注! 
COM 這東西,不用幾次是永遠也記不住的。
xiaohyy 2002-07-23
  • 打赏
  • 举报
回复
我在使用ADO时是用的第2种,还有一种就是 mfkzj() 所说的#define。。。不过那个东西更。。。。
#import "c:\program files\common files\system\ado\msado15.dll" no_namespace rename("EOF","adoEOF")

下面是vc知识库中对该语句的说明:
这一语句有何作用呢?其最终作用同我们熟悉的#include类似,编译的时候系统会
为我们生成msado15.tlh,ado15.tli两个C++头文件来定义ADO库。

几点说明:
(1) 您的环境中msado15.dll不一定在这个目录下,请按实际情况修改
(2) 在编译的时候肯能会出现如下警告,对此微软在MSDN中作了说明,并建议我们不要理会这个警告。
msado15.tlh(405) : warning C4146: unary minus operator applied to unsigned type, result still unsigned

tangss 2002-07-23
  • 打赏
  • 举报
回复
UP
mfkzj 2002-07-23
  • 打赏
  • 举报
回复
说的没错 还有一种就是直接定义ID
#define..........
场合主要看你拥有的是哪种资源 有没有定义文件
chenybin 2002-07-23
  • 打赏
  • 举报
回复
我只用过第3种方法
惭愧惭愧
doublesword 2002-07-23
  • 打赏
  • 举报
回复
gz
chenybin 2002-07-23
  • 打赏
  • 举报
回复
up
holy_cyt 2002-07-23
  • 打赏
  • 举报
回复
up

16,548

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • AIGC Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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