AfxWinInit
Cette fonction est appelée par la fonction WinMain fournie par MFC, lors de l'initialisation CWinApp d'une application basée sur GUI, pour initialiser MFC.
BOOL AFXAPI AfxWinInit(
HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPTSTR lpCmdLine,
int nCmdShow
);
Paramètres
hInstance
Handle du module en cours de exécution.hPrevInstance
Un handle à une instance précédente de l'application. Pour une application basée sur Win32, ce paramètre est toujours NULL.lpCmdLine
Pointe vers la chaîne terminée par le caractère NULL qui spécifie la ligne de commande pour l'application.nCmdShow
Spécifie comment la fenêtre principale d'une application graphique est affichée.
Notes
Pour une application console, qui n'utilise pas la fonction WinMain fournie par MFC, vous devez appeler directement AfxWinInit pour initialiser MFC.
Si vous appelez AfxWinInit vous-même, vous devez déclarer une instance d'une classe CWinApp. Pour une application console, vous pouvez choisir de ne pas dériver votre propre classe de CWinApp et d'utiliser plutôt une instance CWinApp directement. Cette technique est appropriée si vous décidez de conserver toutes les fonctionnalités pour votre application dans l'implémentation de main.
Notes
Lorsqu'il crée un contexte d'activation pour un assembly, MFC utilise une ressource de manifeste spécifiée par le module utilisateur.Le contexte d'activation est créé dans AfxWinInit.Pour plus d'informations, consultez Prise en charge des contextes d'activation dans l'état du module MFC.
Exemple
#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;
}
Configuration requise
En-tête : afxwin.h