程序使用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的问题,请问高手们,如何解决这个问题?
Release/■■■■■■■.exe : fatal error LNK1169: 找到一个或多个多重定义的符号我估计是ADO的问题,请问高手们,如何解决这个问题?
小弟我还不知道如何查询LIB文件的包含顺序,请大哥指教一下,谢谢。
comsupp.lib,不是我在项目里引用的。
根据出错的信息提示:class _variant_t vtMissing,我知道这个类是ADO中的COM定义类,所以我认为这是ADO的错误。准确地说,我在“项目属性-链接”这一栏中,一个LIB也没包含。
看看: http://faq.csdn.net/read/201845.html
#include <afxoledb.h>
# import "c:\program files\common files\system\ado\msado15.dll" no_namespace rename("EOF","adoEOF")以上代码,是书上教的。楼上大哥,请指教一下。
或者加/FORCE:MULTIPLE问题出现的原因,我思考良久,估计是Xtreme Toolkit的问题。因为我第一次生成Xtreme Toolkit没有生成Static库,后来为了发布为重新生成了Static库,中间似乎是增量编译的,反正有点问题。如果程序里不加Xtreme Toolkit库,静态编译没有问题,如果程序不加ADO调用,仅使用Xtreme也没问题,两者一起用,就出问题。所以不烦了,最简单的方法,+上/force, 呵呵。
以上两个地址,感兴趣的可以去看看,我是仔细拜读了一番。