ADO程序静态Release版链接出错,请高手解决

zhoujl77 2007-09-17 01:01:34
程序使用ADO来访问数据库,同时使用Xtreme ToolKit来作界面。

使用MFC动态库时,未出任何错误,只要一采用MFC静态库,就会链接出错。

错误信息如下:

comsupp.lib(comutil.obj) : error LNK2005: "class _variant_t vtMissing" (?vtMissing@@3V_variant_t@@A) 已经在 comsuppw.lib(comutil.obj) 中定义
Release/■■■■■■■.exe : fatal error LNK1169: 找到一个或多个多重定义的符号

我估计是ADO的问题,请问高手们,如何解决这个问题?
...全文
224 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhoujl77 2007-09-17
  • 打赏
  • 举报
回复
http://topic.csdn.net/t/20050619/03/4091860.html#

http://topic.csdn.net/t/20050525/17/4035191.html
以上两个地址,感兴趣的可以去看看,我是仔细拜读了一番。
zhoujl77 2007-09-17
  • 打赏
  • 举报
回复
问题最后还是要靠自己来解决呀。

很简单,在项目->属性->链接器->命令行->附加选项中加 /force
或者加/FORCE:MULTIPLE

问题出现的原因,我思考良久,估计是Xtreme Toolkit的问题。因为我第一次生成Xtreme Toolkit没有生成Static库,后来为了发布为重新生成了Static库,中间似乎是增量编译的,反正有点问题。

如果程序里不加Xtreme Toolkit库,静态编译没有问题,如果程序不加ADO调用,仅使用Xtreme也没问题,两者一起用,就出问题。

所以不烦了,最简单的方法,+上/force, 呵呵。
zhoujl77 2007-09-17
  • 打赏
  • 举报
回复
//使用#import指针来调用ADO对象
#include <afxoledb.h>
# import "c:\program files\common files\system\ado\msado15.dll" no_namespace rename("EOF","adoEOF")

以上代码,是书上教的。

楼上大哥,请指教一下。
wangweixing2000 2007-09-17
  • 打赏
  • 举报
回复
#import那里怎么写的?估计有问题!贴出来!
看看: http://faq.csdn.net/read/201845.html
zhoujl77 2007-09-17
  • 打赏
  • 举报
回复
回楼上的:
comsupp.lib,不是我在项目里引用的。
根据出错的信息提示:class _variant_t vtMissing,我知道这个类是ADO中的COM定义类,所以我认为这是ADO的错误。

准确地说,我在“项目属性-链接”这一栏中,一个LIB也没包含。
shanhqk 2007-09-17
  • 打赏
  • 举报
回复
就是看你引用了几个lib,调整它的顺序
shanhqk 2007-09-17
  • 打赏
  • 举报
回复
comsupp.lib这个是什么文件呀?
zhoujl77 2007-09-17
  • 打赏
  • 举报
回复
回shanhqk(山) :
小弟我还不知道如何查询LIB文件的包含顺序,请大哥指教一下,谢谢。
zhoujl77 2007-09-17
  • 打赏
  • 举报
回复
回楼上的,ADO的头文件,包括import语句,我确实是放在stdafx.h内了,有什么问题吗?
qyjmcse 2007-09-17
  • 打赏
  • 举报
回复
把包含文件放到stdafx.h文件里吧
shanhqk 2007-09-17
  • 打赏
  • 举报
回复
1.查看各个lib之间的包含顺序.

16,472

社区成员

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

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

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