AfxWinInit
Ta funkcja jest wywoływana przez dostarczone MFC WinMain funkcji, jako część CWinApp inicjowania aplikacji graficznego interfejsu użytkownika, aby zainicjować biblioteki MFC.
BOOL AFXAPI AfxWinInit(
HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPTSTR lpCmdLine,
int nCmdShow
);
Parametry
hInstance
Uchwyt module aktualnie uruchomione.hPrevInstance
Dojście do poprzedniego wystąpienia aplikacji.Dla aplikacji opartych na podsystemie Win32, ten parametr jest zawsze wartości NULL.lpCmdLine
Wskazuje ciąg zakończony zerem, określający wiersz polecenia dla aplikacji.nCmdShow
Określa, jak zostaną pokazane w głównym oknie aplikacji GUI.
Uwagi
Dla aplikacji konsoli, które nie wykorzystują dostarczone MFC WinMain funkcji, należy wywołać AfxWinInit bezpośrednio zainicjować klas MFC.
Jeśli zadzwonisz do AfxWinInit siebie, należy zadeklarować wystąpienie CWinApp klasy.Dla aplikacji konsoli, można wybrać nie czerpią własne klasy z CWinApp i zamiast tego użyć instancji CWinApp bezpośrednio.Ta technika jest odpowiednia, jeśli zdecydujesz się pozostawić wszystkie funkcje aplikacji w implementacji główne.
[!UWAGA]
Podczas tworzenia kontekstu aktywacji dla asemblowania, MFC używa zasobu manifestu modu³u użytkownika.Kontekst aktywacji jest tworzony w AfxWinInit.Aby uzyskać dodatkowe informacje, zobacz Obsługa kontekstów 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