卸载.net2005后,在.net2003下#inport 出现了问题

saiyaman5 2007-11-23 01:41:40
我的机上原来就装了2005和2003,现在在把2005卸载了,
在源码中有这语句
//VBA
#import "C:\\Program Files\\Common Files\\Microsoft Shared\\VBA\\VBA6\\VBE6EXT.olb" rename_namespace("VBE6")
编译的时候出现如下错误:

d:\fc\GTIExcAdd\stdafx.h(52) : error C4772: #import 引用了缺少的类型库中的类型;“__missing_type__”用作占位符
d:\fc\GTIExcAdd\Release\vbe6ext.tli(248) : error C2440: “return” : 无法从“__missing_type__ *”转换为“__missing_type__”
该转换要求 reinterpret_cast、C 样式转换或函数类型转换

当然没卸载2005之前是没有问题的,把代码拿到别的机上编译也是没问题的

之后我又把2003重装一次还是不行

请各位大侠指点迷津,小弟不想重装系统......
...全文
391 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
saiyaman5 2007-11-26
  • 打赏
  • 举报
回复
呵呵,终于搞定了,还是用2,4楼的方法,因为愚弟的才疏学浅,走了不少弯路.谢谢各位!
wshcdr 2007-11-23
  • 打赏
  • 举报
回复
用Depends.exe来查看依赖库,VC6的工具里带有这个工具
saiyaman5 2007-11-23
  • 打赏
  • 举报
回复
我的系统装了两个系统,没装过2005的编译没有问题

2楼和4楼的方法都不行,两个系统下都是#import同一文件,当然两个系统有两个VBE6EXT.olb,无论#import哪个都不行

1楼点出了原因,3楼的兄弟我用什么工具查看VBE6EXT.olb依赖哪些库?
北方大冬瓜 2007-11-23
  • 打赏
  • 举报
回复
从别的机器上拷贝拉VBE6EXT.olb,并把#import生成的xxx.tli和xxx.tlh拷贝你的机器上应该可以解决
ouyh12345 2007-11-23
  • 打赏
  • 举报
回复
看VBE6EXT.olb依赖哪些库
wshcdr 2007-11-23
  • 打赏
  • 举报
回复
既然在别的机器上可以
那从别的机器上拷贝拉VBE6EXT.olb,并把#import生成的xxx.tli和xxx.tlh一起拷贝你的机器上编译一下试试
ouyh12345 2007-11-23
  • 打赏
  • 举报
回复
错误消息
#import 引用了缺少的类型库中的类型;“missing_type”用作占位符


类型库是使用 #import 指令引用的。但是,类型库包含一个对另一类型库的引用,它不是使用 #import 引用的。编译器没有找到此其他 .tlb 文件。

默认情况下,此警告作为错误发出。不能用 /W0 取消显示 C4772。

示例
这是再现 C4772 所需的第一个类型库。

复制代码
// c4772a.idl
[uuid("f87070ba-c6d9-405c-a8e4-8cd9ca25c12b")]
library C4772aLib
{
[uuid("f87070ba-c6d9-405c-a8e4-8cd9ca25c100")]
enum E_C4772a
{
one, two, three
};
};


这是再现 C4772 所需的第二个类型库。

复制代码
// c4772b.idl
// post-build command: del /f C4772a.tlb
// C4772a.tlb is available when c4772b.tlb is built
[uuid("f87070ba-c6d9-405c-a8e4-8cd9ca25c12d")]
library C4772bLib
{
importlib ("c4772a.tlb");
[uuid("f87070ba-c6d9-405c-a8e4-8cd9ca25c12e")]
struct S_C4772b
{
enum E_C4772a e;
};
};


下面的示例生成 C4772:

复制代码
// C4772.cpp
// assumes that C4772a.tlb is not available to the compiler
// #import "C4772a.tlb"
#import "C4772b.tlb" // C4772 uncomment previous line to resolve
// and make sure c4772a.tlb is on disk

3,248

社区成员

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

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