在vc中的regular dll中使用ado的导入问题

原创 2004年08月30日 14:44:00

这一段时间要用到dll中使用ado,在mfc中用ado一段时间没有出现什么问题,本以为在dll中也不会出现什么问题,但是问题产生了,而且是在最开始的导入ado的dll文件时候。我的做法是:

#import "c:/program files/common files/system/ado/msado15.dll" no_namespace rename("EOF","adoEOF")
出现:
Compiling resources...
Compiling...
StdAfx.cpp
F:/source/vc/Query/debug/msado15.tlh(169) : error C2011: 'LockTypeEnum' : 'enum' type redefinition
F:/source/vc/Query/debug/msado15.tlh(212) : error C2011: 'DataTypeEnum' : 'enum' type redefinition
F:/source/vc/Query/debug/msado15.tlh(256) : error C2011: 'FieldAttributeEnum' : 'enum' type redefinition
F:/source/vc/Query/debug/msado15.tlh(277) : error C2011: 'EditModeEnum' : 'enum' type redefinition
F:/source/vc/Query/debug/msado15.tlh(285) : error C2011: 'RecordStatusEnum' : 'enum' type redefinition
F:/source/vc/Query/debug/msado15.tlh(405) : warning C4146: unary minus operator applied to unsigned type, result still
unsigned
F:/source/vc/Query/debug/msado15.tlh(527) : error C2011: 'ParameterDirectionEnum' : 'enum' type redefinition
Error executing cl.exe.

ADIDllTest.dll - 6 error(s), 1 warning(s)

 

后来经过在csdn上的搜索发现有下面两种办法来解决这个问题

1)

#pragma warning(disable:4146)
#import "C:/Program Files/Common Files/System/ADO/msado15.dll" named_guids rename("EOF","adoEOF"), rename("BOF","adoBOF")
#pragma warning(default:4146)
using namespace ADODB;

2)

#pragma warning(disable:4146)
#import "C:/Program Files/Common Files/System/ado/msado15.dll" /
no_namespace /
rename("EOF","adoEOF") rename("DataTypeEnum","adoDataTypeEnum") /
rename("FieldAttributeEnum", "adoFielAttributeEnum") rename("EditModeEnum", "adoEditModeEnum") /
rename("LockTypeEnum", "adoLockTypeEnum") rename("RecordStatusEnum", "adoRecordStatusEnum") /
rename("ParameterDirectionEnum", "adoParameterDirectionEnum")

相对来说,还是第一种方法显得更加简便。

希望以后遇到类似问题的朋友可以给你们一些帮助

DLL中使用ADO的解决方法

在DLL中使用ADO,总是出现enum type redefinition错误信息表示有定义冲突。 通常这种情况是由于把ADO(通过#import, 或adoint.h)和MFC DAO或DAO SD...
  • lyzhm
  • lyzhm
  • 2007年03月29日 13:28
  • 758

在vc中的regular dll中使用ado的导入问题

        这一段时间要用到dll中使用ado,在mfc中用ado一段时间没有出现什么问题,本以为在dll中也不会出现什么问题,但是问题产生了,而且是在最开始的导入ado的dll文件时候。我的做法...
  • Q_Jizi
  • Q_Jizi
  • 2008年05月03日 16:41
  • 790

在vc中的MFC regular dll中使用ado的导入问题

这一段时间要用到dll中使用ado,在mfc中用ado一段时间没有出现什么问题,本以为在dll中也不会出现什么问题,但是问题产生了,而且是在最开始的导入ado的dll文件时候。我的做法是:在stdaf...
  • viniboy1982
  • viniboy1982
  • 2007年05月23日 15:51
  • 741

使用相对路径导入ado库的方法

作者:朱金灿来源:http://blog.csdn.net/clever101             常用的导入ado库的语句:#import "c:\program files\common fi...
  • clever101
  • clever101
  • 2013年11月22日 15:02
  • 3959

VC中调用dll函数的两种方法

一、显式调用 1、定义函数指针 typedef int (*dll_mul)(int a,int b); 2、加载dll,并获取其程序实例句柄 HINSTANCE hdll=loadlibrary(...
  • lzhui1987
  • lzhui1987
  • 2015年11月05日 09:11
  • 1799

vc++中ADO技术入门

摘要 本文简要介绍了在VC++ 6.0中使用 ADO进行客户端数据库编程的基本步骤,以及常见问题的解决方法,可供入门级的参考之用。    关键字 ADO VC++ 数据库编程 ADO 是...
  • coolboylai2
  • coolboylai2
  • 2012年07月01日 16:48
  • 3782

VC++中DLL(动态链接库)使用的若干问题

一 DLL相关概念 可以简单把DLL看做一个仓库,它提供给你可以直接使用的变量、函数或类。动态链接库DLL实现了库的共享,体现了代码重用的思想。我们可以把广泛的、具有共性的、能够多次被利用的函数...
  • wangzhen209
  • wangzhen209
  • 2016年02月26日 13:12
  • 1556

教你用ADO+VC在程序中完成创建和修改ACCESS数据库

教你用ADO+VC在程序中完成创建和修改ACCESS数据库    最近MSDN上多了好多问关于数据库方面开发的,这里为了回答一些朋友的问题,特别整理了一个大家容易忽视的很好的技术,相信你读完你也许会恍...
  • LBPeking
  • LBPeking
  • 2008年03月29日 21:15
  • 4996

VC++ ado事务处理

VC++ ado事务处理
  • byxdaz
  • byxdaz
  • 2017年09月03日 11:27
  • 562

VC的DLL加载方法

 VC调用DLL2009年08月14日 星期五 下午 03:07调用DLL,首先需要将DLL文件映像到用户进程的地址空间中,然后才能进行函数调用,这个函数和进程内部一般函数的调用方法相同。Window...
  • yu444
  • yu444
  • 2009年10月26日 10:21
  • 27971
收藏助手
不良信息举报
您举报文章:在vc中的regular dll中使用ado的导入问题
举报原因:
原因补充:

(最多只允许输入30个字)