3

我在使用 adxdb.h 时遇到了问题:

我尝试过了

#include "afxdb.h"

但我收到了这个错误:

C:\Program Files\Microsoft Visual Studio 9.0\VC\atlmfc\include\afx.h(24) : 致命错误 C1189: #error : Building MFC application with /MD[d] (CRT dll version) requires MFC shared dll version . 请#define _AFXDLL 或不要使用 /MD[d]

然后我加了

#define _AFXDLL

正如错误消息所说,并得到了十几个错误:

C:\Program Files\Microsoft Visual Studio 9.0\VC\atlmfc\include\afxole.h(1455):错误 C2504:'CControlBar':基类未定义
1>C:\Program Files\Microsoft Visual Studio 9.0\VC\atlmfc \include\afxole.h(1470) : 错误 C2146: 语法错误: 缺少 ';' 在标识符 'm_tracker'
1>C:\Program Files\Microsoft Visual Studio 9.0\VC\atlmfc\include\afxole.h(1470) 之前:错误 C4430:缺少类型说明符 - 假定为 int。注意:C++ 不支持 default-int
1>C:\Program Files\Microsoft Visual Studio 9.0\VC\atlmfc\include\afxole.h(1470):错误 C4430:缺少类型说明符 - 假定为 int。注意:C++ 不支持 default-int
1>C:\Program Files\Microsoft Visual Studio 9.0\VC\atlmfc\include\afxpriv.h(590) : error C2504: 'CControlBar' :

关于如何做到这一点的任何想法?PS 我是 Visual C++ 的新手

4

3 回答 3

5

不要直接添加#define _AFXDLL,而是通过项目配置设置间接添加:转到您的项目属性页 | 配置属性 | 一般 | 使用 MFC,并确保设置为在共享 DLL 中使用 MFC。

于 2011-05-31T21:35:41.423 回答
1

要解决这个问题,需要打开Projects->Proprties->Configuration Properties>Generation->Use of MFC:在Shared DLL中使用MFC。

(Visual Studio 2013)你会很开心!

于 2014-08-05T20:36:17.370 回答
0

我有同样的问题,为了解决它,我必须确保:

#include <afxcmn.h>

之前是:

#include <afxdb.h>

所以:

#include <afxcmn.h>
#include <afxdb.h>

很好,并且:

#include <afxdb.h>
#include <afxcmn.h>

不好。

于 2011-10-20T15:25:09.813 回答