Visual C ++ 2008, ошибки при #include "afxdb.h" - PullRequest
3 голосов
/ 01 июня 2011

У меня проблемы с использованием adxdb.h:

Я пытался

#include "afxdb.h"

Но я получил эту ошибку:

C: \ Program Files \ Microsoft Visual Studio 9.0 \ VC \ atlmfc \ include \ afx.h (24): фатальная ошибка C1189: #error: Создание приложения MFC с / MD [d] (версия CRT dll) требует MFC расшарил версию dll. Пожалуйста #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): ошибка C2504: 'CControlBar': базовый класс не определен

Есть идеи, как сделать это правильно? Постскриптум Я новичок в Visual C ++

Ответы [ 3 ]

5 голосов
/ 01 июня 2011

Не добавляйте напрямую #define _AFXDLL, вместо этого он добавляется косвенно с помощью параметра конфигурации проекта: перейдите на страницы свойств вашего проекта | Свойства конфигурации | Генерал | Использование MFC и убедитесь, что для параметра «Использовать MFC в общей библиотеке DLL» установлено значение.

1 голос
/ 06 августа 2014

Чтобы решить эту проблему, вам нужно открыть Projects-> Proprties-> Configuration Properties> Generation-> Use MFC: использовать MFC в Shared DLL.

(Visual Studio 2013) И вы будете счастливы!

0 голосов
/ 20 октября 2011

У меня была такая же проблема, и чтобы решить ее, я должен был убедиться, что:

#include <afxcmn.h>

раньше:

#include <afxdb.h>

Итак:

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

Это хорошо и:

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

Это плохо.

...