AfxWinInit
這個函式由 MFC 提供呼叫WinMain的一部分的函式, CWinApp 的 gui 應用程式,以初始化 MFC 初始化。
BOOL AFXAPI AfxWinInit(
HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPTSTR lpCmdLine,
int nCmdShow
);
參數
hInstance
目前正在執行的模組控制代碼。hPrevInstance
應用程式的前一個執行個體控制代碼。為 Win32 架構的應用程式中,這個參數一定是 NULL。lpCmdLine
點,以 null 結束的字串,指定命令列應用程式。nCmdShow
指定如何顯示 GUI 應用程式的主視窗。
備註
主控台應用程式,而不使用 MFC 提供WinMain函式,您必須呼叫AfxWinInit直接用來初始化 MFC。
如果您呼叫AfxWinInit ,您應該宣告的執行個體CWinApp類別。主控台應用程式,您可以選擇不是用來衍生您自己的類別,從CWinApp ,而改用自己的執行個體CWinApp直接。適用於您決定要保留您的應用程式的所有功能的實作中,這個技巧十分主要。
注意事項 |
---|
它會啟用內容建立組件時,MFC 會使用使用者模組所提供的資訊清單資源。啟用內容會在AfxWinInit。如需詳細資訊,請參閱 在 MFC 模組狀態的啟動內容的支援。 |
範例
#include <afx.h>
#include <afxdb.h>
int _tmain(int /*argc*/, TCHAR* /*argv[]*/, TCHAR* /*envp[]*/)
{
int nRetCode = 0;
// initialize MFC and print and error on failure
if (!AfxWinInit(::GetModuleHandle(NULL), NULL, ::GetCommandLine(), 0))
{
// TODO: change error code to suit your needs
_tprintf(_T("Fatal Error: MFC initialization failed\n"));
nRetCode = 1;
}
else
{
// try to connect to an ODBC database that doesn't exist
// (this wouldn't work at all without initializing MFC)
CDatabase db;
try
{
db.Open(_T("This Databsae Doesn't Exist"));
// we shouldn't realistically get here
_tprintf_s(_T("Successful!\n")
_T("Closing ...\n"));
db.Close();
_tprintf_s(_T("Closed!"));
}
catch (CDBException* pEx)
{
// we got an exception! print an error message
// (this wouldn't work without initializing MFC)
TCHAR sz[1024];
_tprintf_s(_T("Error: "));
if (pEx->GetErrorMessage(sz, 1024))
_tprintf_s(sz);
else
_tprintf_s(_T("No error message was available"));
_tprintf_s(_T("\n"));
pEx->Delete();
nRetCode = 1;
}
}
return nRetCode;
}
需求
標頭: afxwin.h