AfxWinInit
Diese Funktion wird mit der WinMain MFC-angegebene Funktion, als Teil der CWinApp die Initialisierung einer GUI-basierten Anwendung, MFC aufgerufen zu initialisieren.
BOOL AFXAPI AfxWinInit(
HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPTSTR lpCmdLine,
int nCmdShow
);
Parameter
hInstance
Das Handle des aktuell Verarbeitungsmoduls.hPrevInstance
Ein Handle einer vorherigen Instanz der Anwendung. Für eine Win32-basierte Anwendung ist dieser Parameter immer NULL.lpCmdLine
Punkte zu einer auf NULL endende Zeichenfolge, die die Befehlszeile für die Anwendung angeben.nCmdShow
Gibt an, wie das Hauptfenster einer GUI-Anwendung angezeigt würden.
Hinweise
Eine Konsolenanwendung die nicht die WinMain MFC-angegebene Funktion verwendet, muss AfxWinInit direkt aufrufen, um MFC-Programm zu initialisieren.
Wenn Sie AfxWinInit sicher aufrufen, sollten Sie eine Instanz einer CWinApp-Klasse deklarieren. Eine Konsolenanwendung empfiehlt es sich, um eine eigene Klasse von CWinApp abgeleitet werden und eine Instanz von CWinApp stattdessen direkt zu verwenden. Diese Technik ist geeignet, wenn Sie festlegen, um alle Funktionen für die Anwendung in der Implementierung von main verwendet.
Hinweis
Wenn sie einen Aktivierungskontext für eine Assembly erstellt wird, verwendet MFC eine Manifestressource, die vom Benutzermodul bereitgestellt wird.Der Aktivierungskontext AfxWinInit wird erstellt.Weitere Informationen finden Sie unter Unterstützung für Aktivierungskontexte im MFC-Modulstatus.
Beispiel
#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;
}
Anforderungen
Header: afxwin.h