У меня проблемы с использованием 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 ++
Не добавляйте напрямую #define _AFXDLL, вместо этого он добавляется косвенно с помощью параметра конфигурации проекта: перейдите на страницы свойств вашего проекта | Свойства конфигурации | Генерал | Использование MFC и убедитесь, что для параметра «Использовать MFC в общей библиотеке DLL» установлено значение.
Чтобы решить эту проблему, вам нужно открыть Projects-> Proprties-> Configuration Properties> Generation-> Use MFC: использовать MFC в Shared DLL.
(Visual Studio 2013) И вы будете счастливы!
У меня была такая же проблема, и чтобы решить ее, я должен был убедиться, что:
#include <afxcmn.h>
раньше:
#include <afxdb.h>
Итак:
#include <afxcmn.h> #include <afxdb.h>
Это хорошо и:
#include <afxdb.h> #include <afxcmn.h>
Это плохо.