AfxWinInit
Essa função é chamada pela função MFC- fornecida de WinMain , como parte de inicialização de CWinApp de um aplicativo baseado GUI-, inicializar o MFC.
BOOL AFXAPI AfxWinInit(
HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPTSTR lpCmdLine,
int nCmdShow
);
Parâmetros
hInstance
O identificador de módulo em execução.hPrevInstance
Um identificador para uma instância anterior do aplicativo. Para um aplicativo de Win32-based, esse parâmetro será sempre nulo.lpCmdLine
Aponta para uma cadeia de caracteres com terminação nula que especifica a linha de comando para o aplicativo.nCmdShow
Especifica como a janela principal de um aplicativo de GUI seria mostrada.
Comentários
Para um aplicativo de console, que não usa a função MFC- fornecida de WinMain , você deve chamar AfxWinInit diretamente para inicializar o MFC.
Se você chamar AfxWinInit você mesmo, você deve declarar uma instância de uma classe de CWinApp . Para um aplicativo de console, você pode escolher não derivar sua própria classe de CWinApp e não usar em vez de diretamente uma instância de CWinApp . Essa técnica apropriada se você decidir permitir que toda a funcionalidade do aplicativo em sua implementação de main.
Dica
Quando cria um contexto de ativação de um assembly, o MFC usa um recurso de manifesto fornecido pelo módulo do usuário.O contexto de ativação é criado em AfxWinInit.Para obter mais informações, consulte Suporte para contextos de ativação no estado do módulo MFC.
Exemplo
#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
Cabeçalho: afxwin.h
Consulte também
Referência
main: inicialização do programa