问一个VC中头文件的包含问题!

readnothing 2002-05-15 09:32:07
小弟在编程中,因为要使用ie5.5的sdk,所以就按照说明将该文件加到Tools中Directory的最顶端,但是编译时报IHMTLControlElement重复定义错,于是我就把这个sdk中的几个与mshtml有关的头文件复制到vc的include的目录中,结果还是抱同样的错误,请问各位,应该如何解决?
谢了先
...全文
24 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
e_notimpl 2002-05-16
  • 打赏
  • 举报
回复
mshtml.tlb生成的代码有自己的namespace。
可以这样
#import "c:\winnt\system32\mshtml.tlb" rename_namespace("myname")
using namespace myname;
...

void foo()
{
myname::IHTMLControlElementPtr pCtrl;
...
}

一般不会有什么重定义的问题。

mshtml.tlb是M$赏的,拿着用就是了。
e_notimpl 2002-05-15
  • 打赏
  • 举报
回复
#import "c:\winnt\system32\mshtml.tlb"
我就这么用的。不需要自己去include什么头文件,编译器会做的。
当然目录要换成你自己的系统目录。
readnothing 2002-05-15
  • 打赏
  • 举报
回复
但是这好像不是这样简单的头文件重复定义的问题,因为IHTMLControlElement是vc中定义的,包含在其他头文件中,我怀疑可能是我的编译路径包含的不对。
哪位用过mshtml编程的高手指点一下吧。。。。。。。。
readnothing 2002-05-15
  • 打赏
  • 举报
回复
up
kkk16 2002-05-15
  • 打赏
  • 举报
回复
用下面的宏
#if !define YOUYHEADFILENAME_H
#define
...
//your head file
...

#endif

如果不会用的话,可以参看其它的一些头文件,那里基本上都有的。
readnothing 2002-05-15
  • 打赏
  • 举报
回复
up
readnothing 2002-05-15
  • 打赏
  • 举报
回复
to : e_notimpl
系统目录下的mshtml.tlb是怎样生成的?
是不是我用了新的类库之后需要重新产生?
readnothing 2002-05-15
  • 打赏
  • 举报
回复
to: e_notimpl
我用了你的方法,可是错误依旧。。。。。。。。。。

我现在把ie55的sdk中的mshtml.h等文件覆盖了原vc中的文件,但是编译时仍然是抱mshtml.h中的IHTMLControlElement重复定义。。。。。。。。。
是不是应该把这个接口删掉。。。。。。。。。。。。。。

各位,用过的麻烦赐教,在线等待

16,472

社区成员

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

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

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