在DLL中使用ADO,总是出现'enum' type redefinition错误信息表示有定义冲突。
通常这种情况是由于把ADO(通过#import, 或adoint.h)和MFC DAO或DAO SDK代码放在同一实现文件内(.cpp), 如:
#include <afxdao.h> // MFC DAO
// 或
#include <dbdao.h> // DAO SDK
#import <msado15.dll> no_namespace ...
通常有以下方法:
1. 从STDAFX.H中去掉#include <AFXDAO.H>这一行。
2. 把ADO和DAO代码放在不同的.cpp文件. 并使#import和#include <afxdao.h/dbdao.h>不在同一文件中出现。
3. 如使用#import,使用rename_namespace把生成的ADO代码放在单独的命名空间。如: