2012-05-08 17 views
4

私は、VC++でMFCアプリケーションを作成するためにアプリケーションウィザードを使用すると、ウィザードがプロジェクトに必要なライブラリを自動的に追加することを知っています。アプリケーションウィザードを使用してMFCアプリケーションを作成することとは別に、MFCサポートを取得するにはどうすればよいですか?

手動でMFCアプリケーションを作成したいとします。どうやってするか?新しいMFCアプリケーションを作成するとき

+0

@BROY:質問が誤解された場合は、教えてください。 – LihO

+0

申し訳ありませんが、MFCヘッダーファイルとその依存関係を深く理解しているだけでなく、Visual Studioでサポートされている場合、MFCアプリケーションを手動で作成する理由が他にはありません。あなたが特定の問題を扱っているなら、新しい質問を作成し、それを適切に記述することを忘れないでください。そうでなければ、それは建設的でないか本当の質問ではないと恐れられます。 – LihO

+0

@LihO BROYが手動でMFCアプリを作成する理由はたくさんあります。おそらく、彼のIDEが誤動作している可能性があります。 –

答えて

4

あなたがそこに依存関係がたくさんあるし、周りの騒ぎ、手動でMFCアプリケーションを作成することができます。しかし、それは楽しいことができます。ここに小さなチュートリアルがあります。

次HelloMFCファイルを作成します。コマンドラインでこれをコンパイルするには

#include <afxwin.h> 

    class HelloApplication : public CWinApp 
    { 
    public:  
    virtual BOOL InitInstance(); 
    }; 

    HelloApplication HelloApp; 

    class HelloWindow : public CFrameWnd 
    {   
    CButton* m_pHelloButton; 
    public:  
    HelloWindow(); 
    }; 


    BOOL HelloApplication::InitInstance() 
    {   
    m_pMainWnd = new HelloWindow();  
    m_pMainWnd->ShowWindow(m_nCmdShow);  
    m_pMainWnd->UpdateWindow();  
    return TRUE; 
    } 


    HelloWindow::HelloWindow() 
    {   
    Create(NULL,    
    "Hello World!",    
    WS_OVERLAPPEDWINDOW|WS_HSCROLL,     
    CRect(0,0,140,80));   
    m_pHelloButton = new CButton(); 
    m_pHelloButton->Create("Hello World!",WS_CHILD|WS_VISIBLE,CRect(20,20,120,40),this,1); 
    } 

をリンクするために必要なすべてのライブラリがあります。上記のコードには、WinMainまたはmainがないことがわかります。 MFCは図書館でメインを飾った。これは、appmodul.cppで定義されており、MFC \ SRCディレクトリにあります。

とにかく、ここであなたは上記のコードをコンパイルする方法です。

cl.exeのhellomfc.cpp/EHsc/Iはatlmfc/Iは、/ I は\ Winsdk atlmfc \ libに\ AMD64を含むインクルード、\ \ Libsの\柯 rnel32.Lib Libsの\ User32.Lib Libsの\ Gdi32.Lib Libsの\ MSImg32.Lib Libsの\ ComDlg32.LibのLib S \ WinSpool.Lib Libsの\ AdvAPI32.Lib Libsの\ LIBCMT.LIB nafxcw.lib Libsの\ Shell32.Lib Libs \ ComCtl32.Lib Libs \ ShLwApi .Lib Libs \ Uuid.lib atlmfc \ lib \ amd64 \ atls.lib Libs \ Ole32.Lib Libs \ OleAut32.Lib Li bs \ oldnames.lib Libs \ WS2_32.Lib Libs \ MsWSock.Lib Libs \ OleAcc.Lib Libsの\ comsuppw.l IB Libsの\ GdiPlus.lib Libsの\ Imm32.Lib Libsの\ WINMM.LIB Libsの\ MsXml2.Lib Libsの\ OleDlg.L IB Libsの\ Urlmon.Lib /リンク/ SUBSYSTEM:WINDOWS

注:上記は明らかにライブラリファイルの特定の場所に依存しますが、それらは必要なライブラリです。

4

、あなたがプリコンパイル済みヘッダーにこのコードを見つけます:

#include <afxwin.h>   // MFC core and standard components 
#include <afxext.h>   // MFC extensions 

MFCヘッダーファイルが含まれますどのようにしています。新しいWin32コンソールアプリケーションを作成しようとMFCのサポートを含めるようにウィザードを頼む場合でも、再度、プリコンパイル済みヘッダーにこれらの行を見つけます:

#include <afx.h> 
#include <afxwin.h>   // MFC core and standard components 
#include <afxext.h>   // MFC extensions 

をので、あなただけ何とかコンソールアプリケーションを作成する場合MFCクラスを使用して、そしてちょうど、新しい空のプロジェクトを作成し、そのプロパティにアクセスして、静的ライブラリで使用する標準のWindowsライブラリするために使用するMFCからMFCの一般変更使用インチその後、これらのヘッダーを含めるだけで、すぐに使用できます。 ;)

例:

#include <iostream> 
#include <afx.h> 
#include <afxwin.h>   // MFC core and standard components 
#include <afxext.h>   // MFC extensions 

int main() 
{ 
    CByteArray a; 
    a.Add(7); 
    std::cout << (int)a[0]; 
} 
+0

SOの時間とエネルギーのもう一つの無駄。 – anonymous

+2

@BROY:これは、彼らの経験を共有し、あなたを喜んで助ける人で構成された素晴らしいコミュニティです。しかし、彼らはあなたがどのような問題を扱っているのか分からなければ、あなたを助けることができません。 – LihO

+0

私の答えが見つかりました。 http://www1bpt.bridgeport.edu/sed/fcourses/cs440/Lectures/cs440_lec1.doc。 (ページ11)。 – anonymous

関連する問題