Date Редакция Категория comp Теги Cpp / MFC / Visual Studio

Visual Studio позволяет создавать каркас MFC-проекта (например, MFC Application), добавляя в него необходимые, на взгляд разработчиков VS, файлы. Если вы предпочитаете создавать проекты самостоятельно (для небольшого проекта это позволяет избежать излишнего его "распухания"), без "подсказок" VS, то можно поступать следующим образом.

Создаем Win32 Project и при его создании выбираем An Empty Project (иначе "добавки" от VS появятся на этом этапе).

Добавляем в проект исходные файлы (пример взят с сайта Артема Каева):

MainWnd.h

#include "afxwin.h" // MFC Основные и стандартные компоненты

class CMainWnd : public CFrameWnd
{
public:
    CMainWnd(); // Конструктор по умолчанию
};

MainWnd.cpp

#include "MainWnd.h"

CMainWnd::CMainWnd()
{
    Create(NULL,L"Step1",WS_OVERLAPPEDWINDOW,rectDefault,
        NULL,NULL); // Создать окно программы
}

MyApp.h

#include "afxwin.h"

class CMyApp : public CWinApp
{
public:
    CMyApp();           //конструктор по умолчанию
    virtual BOOL InitInstance();//стандартная инициализация
};

MyApp.cpp

#include "MyApp.h"
#include "MainWnd.h"

CMyApp::CMyApp() // конструктор главного класса приложения
{}

BOOL CMyApp::InitInstance() // стандартная инициализация
{
    m_pMainWnd=new CMainWnd();  // создать класс окна
    ASSERT(m_pMainWnd); // проверить его правильность
    m_pMainWnd->ShowWindow(SW_SHOW);// Показать окно
    m_pMainWnd->UpdateWindow(); // Обновить окно
    return TRUE;        // Вернуть что все нормально
};

CMyApp theApp;  // запуск приложения

Теперь в свойствах проекта нужно указать способ использования MFC (Use of MFC): Use MFC in a Shared DLL или Use MFC in a Static Library. Иначе, при стоящем по умолчанию Use Standard Windows Libraries, получим ошибку:

fatal error C1189: #error : Building MFC application with /MD[d] (CRT dll version) requires MFC shared dll version. Please #define _AFXDLL or do not use /MD[d]


Комментарии

comments powered by Disqus