AfxWinInit
Tato funkce se nazývá podle dodaných MFC WinMain funkce jako součást CWinApp inicializace aplikace založená na GUI se inicializovat knihovnu MFC.
BOOL AFXAPI AfxWinInit(
HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPTSTR lpCmdLine,
int nCmdShow
);
Parametry
hInstance
Popisovač aktuálně spuštěn modul.hPrevInstance
Popisovač předchozí instance aplikace.Aplikace založená na systému Win32 tento parametr je vždy NULL.lpCmdLine
Body na řetězec zakončený hodnotou null určující příkazového řádku pro aplikaci.nCmdShow
Určuje, jak by hlavní okno aplikace GUI zobrazeny.
Poznámky
Aplikace konzoly, která nepoužívá MFC dodávané WinMain funkci, musíte zavolat AfxWinInit přímo se inicializovat knihovnu MFC.
Při volání AfxWinInit sami, by měla deklarovat instance CWinApp třídy.Aplikace konzoly, můžete zvolit není odvozena z vlastní třídy CWinApp a místo toho použít instanci CWinApp přímo.Tato technika je vhodná, pokud se rozhodnete ponechat všechny funkce aplikace implementace hlavní.
[!POZNÁMKA]
Při vytvoření aktivačního kontextu pro sestavení, MFC používá prostředku manifestu poskytované modul uživatele.Aktivační kontext je vytvořena v AfxWinInit.Další informace naleznete v tématu Podpora pro aktivační kontexty v modulu stavu MFC.
Příklad
#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;
}
Požadavky
Záhlaví: afxwin.h