私は、VC++でMFCアプリケーションを作成するためにアプリケーションウィザードを使用すると、ウィザードがプロジェクトに必要なライブラリを自動的に追加することを知っています。アプリケーションウィザードを使用してMFCアプリケーションを作成することとは別に、MFCサポートを取得するにはどうすればよいですか?
手動でMFCアプリケーションを作成したいとします。どうやってするか?新しいMFCアプリケーションを作成するとき
私は、VC++でMFCアプリケーションを作成するためにアプリケーションウィザードを使用すると、ウィザードがプロジェクトに必要なライブラリを自動的に追加することを知っています。アプリケーションウィザードを使用してMFCアプリケーションを作成することとは別に、MFCサポートを取得するにはどうすればよいですか?
手動でMFCアプリケーションを作成したいとします。どうやってするか?新しいMFCアプリケーションを作成するとき
あなたがそこに依存関係がたくさんあるし、周りの騒ぎ、手動で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
注:上記は明らかにライブラリファイルの特定の場所に依存しますが、それらは必要なライブラリです。
、あなたがプリコンパイル済みヘッダーにこのコードを見つけます:
#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];
}
@BROY:質問が誤解された場合は、教えてください。 – LihO
申し訳ありませんが、MFCヘッダーファイルとその依存関係を深く理解しているだけでなく、Visual Studioでサポートされている場合、MFCアプリケーションを手動で作成する理由が他にはありません。あなたが特定の問題を扱っているなら、新しい質問を作成し、それを適切に記述することを忘れないでください。そうでなければ、それは建設的でないか本当の質問ではないと恐れられます。 – LihO
@LihO BROYが手動でMFCアプリを作成する理由はたくさんあります。おそらく、彼のIDEが誤動作している可能性があります。 –