AfxWinInit
Essa função é chamada pelo fornecido pelo MFC WinMain função, sistema autônomo parte do CWinApp inicialização de um aplicativo baseado em GUI, inicializar MFC.
BOOL AFXAPI AfxWinInit(
HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPTSTR lpCmdLine,
int nCmdShow
);
hInstance
O identificador do módulo em execução no momento.hPrevInstance
Um identificador para uma instância anterior do aplicativo.Este parâmetro para um aplicativo Win32, sempre é NULO.lpCmdLine
Aponta para uma cadeia terminada com nulo que especifica a linha de comando para o aplicativo.nCmdShow
Especifica como seria exibida na janela principal de uma aplicação de GUI.
Para um aplicativo de console, que não usa o fornecido pelo MFC WinMain função, você deve telefonar AfxWinInit diretamente para inicializar MFC.
If you telefonar AfxWinInit Você mesmo, você deve declarar uma instância de um CWinApp classe. Para um aplicativo de console, você pode optar por não derivar sua própria classe de CWinApp e, em vez disso, usar uma instância de CWinApp diretamente. Essa técnica é apropriada se você decidir deixar toda a funcionalidade do aplicativo em sua implementação de principal.
Observação: |
---|
Quando cria um contexto de ativação para um assembly, o MFC usa um recurso de manifesto fornecido pelo módulo de usuário.O contexto de ativação é criado no AfxWinInit.Para obter mais informações, consulte Suporte para contextos de ativação no estado do módulo de MFC. |
#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;
}
Cabeçalho: afxwin.h