AfxWinInit
Esta función se llama por la función MFC- proporcionada de WinMain , como parte de la inicialización de CWinApp de una aplicación GUI- basada, para inicializar MFC.
BOOL AFXAPI AfxWinInit(
HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPTSTR lpCmdLine,
int nCmdShow
);
Parámetros
hInstance
El identificador de módulo actualmente en ejecución.hPrevInstance
Identificador de una instancia anterior de la aplicación. Para una aplicación de win32, este parámetro es siempre nulo.lpCmdLine
Señala una cadena terminada en null que especifica la línea de comandos para la aplicación.nCmdShow
Especifica cómo la ventana principal de una aplicación de GUI sería mostrada.
Comentarios
Para una aplicación de consola, que no utiliza la función MFC- proporcionada de WinMain , debe llamar a AfxWinInit directamente para inicializar MFC.
Si llama a AfxWinInit personalmente, debe declarar una instancia de una clase de CWinApp . Para una aplicación de consola, puede elegir no derivar dispone de la clase de CWinApp y en su lugar para utilizar una instancia de CWinApp directamente. Esta técnica es adecuada si decide dejar toda la funcionalidad de la aplicación en la implementación de main.
Nota
Cuando crea un contexto de activación para un ensamblado, MFC utiliza un recurso manifiesto proporcionado por el módulo del usuario.El contexto de activación se crea en AfxWinInit.Para obtener más información, vea Compatibilidad con los contextos de activación en el estado del módulo MFC.
Ejemplo
#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;
}
Requisitos
Encabezado: afxwin.h