#1
  1. No Profile Picture
    Contributing User
    Devshed Newbie (0 - 499 posts)

    Join Date
    Nov 2010
    Posts
    121
    Rep Power
    21

    MFC Hello World program problem


    This is the hello world program (which I think is from Prosise's MFC book)

    Code:
    // #define _AFXDLL
    
    #include <afxwin.h>
    #include "Hello.h"
    
    
    CMyApp myApp;
    
    /////////////////////////////////////////////////////////////////////////
    // CMyApp member functions
    
    BOOL CMyApp::InitInstance ()
    {
        m_pMainWnd = new CMainWindow;
    	
    
       m_pMainWnd->ShowWindow (m_nCmdShow);
        m_pMainWnd->UpdateWindow ();
        return TRUE;
    }
    
    /////////////////////////////////////////////////////////////////////////
    // CMainWindow message map and member functions
    
    BEGIN_MESSAGE_MAP (CMainWindow, CFrameWnd)
        ON_WM_PAINT ()
    END_MESSAGE_MAP ()
    
    CMainWindow::CMainWindow ()
    {
        Create (NULL, _T ("The Hello Application"));
    }
    
    void CMainWindow::OnPaint ()
    {
        CPaintDC dc (this);
        
        CRect rect;
        GetClientRect (&rect);
    
        dc.DrawText (_T ("Hello, MFC"), -1, &rect,DT_SINGLELINE  DT_CENTER  DT_VCENTER);
    }
    hello.cpp

    Code:
    Hello.h
    class CMyApp : public CWinApp
    {
    public:
        virtual BOOL InitInstance ();
    };
    
    class CMainWindow : public CFrameWnd
    {
    public:
        CMainWindow ();
    
    protected:
        afx_msg void OnPaint ();
        DECLARE_MESSAGE_MAP ()
    };
    The following line in afx.hget's activated when I try to build solution and it does not compile

    Code:
     #error Building MFC application with /MD[d] (CRT dll version) requires MFC shared dll version. Please #define _AFXDLL or do not use /MD[d]
    How do I get it to compile?

    The compiler is Visual C++2010 in Visual Studio 2010 Professional
  2. #2
  3. No Profile Picture
    Contributing User
    Devshed Newbie (0 - 499 posts)

    Join Date
    Oct 2012
    Posts
    186
    Rep Power
    82
    Use MFC in a shared DLL

    Go to:

    Project
    Properties
    General
    and verify that "Use of MFC" is set to Use MFC in a shared DLL

IMN logo majestic logo threadwatch logo seochat tools logo