AfxWinInit
Tato funkce je volána pomocí MFC dodává WinMain funkce jako součást CWinApp inicializace aplikace založenou na grafickém uživatelském rozhraní inicializace knihovny MFC.
BOOL AFXAPI AfxWinInit(
HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPTSTR lpCmdLine,
int nCmdShow
);
Parametry
hInstance
Popisovač aktuálně spuštěný modul.hPrevInstance
Popisovač pro předchozí instance aplikace.Aplikace založené na Win32, tento parametr je vždy NULL.lpCmdLine
Odkazuje na řetězec zakončený hodnotou null určující příkazového řádku pro aplikaci.nCmdShow
Určuje, jak by být zobrazena v hlavním okně aplikace grafického uživatelského rozhraní.
Poznámky
Pro aplikaci konzoly, která nepoužívá MFC dodává WinMain funkce je třeba volat AfxWinInit přímo k inicializaci knihovny MFC.
Pokud zavoláte AfxWinInit sami, měli byste deklarovat instanci CWinApp třídy.Pro aplikace konzoly je možné nelze odvodit vlastní třídu ze CWinApp a místo toho použít instanci CWinApp přímo.Tato technika je vhodná, pokud se rozhodnete ponechat všechny funkce aplikace ve vaší implementaci hlavní.
[!POZNÁMKA]
Při vytvoření aktivačního kontextu pro sestavení, knihovna MFC použije prostředku manifestu, který poskytuje modul uživatele.Aktivační kontext je vytvořena v AfxWinInit.Další informace naleznete v tématu Podpora kontextů aktivace ve stavu modulu 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
Hlavička: afxwin.h