AfxWinInit
Ta funkcja jest wywoływana przez dostarczone MFC WinMain funkcji, jako część CWinApp inicjowania aplikacji opartej na graficznym interfejsie użytkownika, zainicjować klas MFC.
BOOL AFXAPI AfxWinInit(
HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPTSTR lpCmdLine,
int nCmdShow
);
Parametry
hInstance
Uchwyt modułu aktualnie uruchomione.hPrevInstance
Uchwyt do poprzedniej instancji aplikacji.W przypadku aplikacji z Win32 ten parametr jest zawsze NULL.lpCmdLine
Wskazuje ciąg zakończony zerem, określający wiersza polecenia dla aplikacji.nCmdShow
Określa, w jaki sposób zostaną pokazane w głównym oknie aplikacji GUI.
Uwagi
Dla aplikacji konsoli, które nie wykorzystują dostarczone MFC WinMain funkcji, musisz wywołać AfxWinInit bezpośrednio zainicjować klas MFC.
Jeśli zadzwonisz AfxWinInit , należy zadeklarować wystąpienie CWinApp klasy.W przypadku aplikacji konsoli można wybrać nie pochodzić z klasy z CWinApp i użyć instancji CWinApp bezpośrednio.Ta technika jest odpowiednia, jeśli zdecydujesz się pozostawić wszystkie funkcje aplikacji w danej implementacji główne.
[!UWAGA]
Podczas tworzenia kontekstu aktywacji dla zestawu, MFC używa zasobu manifestu dostarczone przez moduł użytkownika.Kontekst aktywacji jest tworzony w AfxWinInit.Aby uzyskać więcej informacji, zobacz Obsługa kontekst aktywacji w stanie modułu MFC.
Przykład
#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;
}
Wymagania
Nagłówek: afxwin.h