AfxWinInit
Эта функция вызывается образце для функции WinMain, как часть инициализации CWinApp, основанных на графическом интерфейсе пользователя, инициализации приложения MFC.
BOOL AFXAPI AfxWinInit(
HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPTSTR lpCmdLine,
int nCmdShow
);
Параметры
hInstance
Дескриптор выполняющегося в данный момент модуля.hPrevInstance
Дескриптор к предыдущему экземпляру приложения. Для приложений на базе win32 этот параметр всегда NULL.lpCmdLine
Указывает на объединения завершенной строки, в командную строку для приложения.nCmdShow
Определяет, как будет показано главное окно приложения ГРАФИЧЕСКОГО ИНТЕРФЕЙСА ПОЛЬЗОВАТЕЛЯ.
Заметки
Для консольного приложения, которое не использует образце поставленную функции WinMain, необходимо вызвать AfxWinInit непосредственно для инициализации MFC.
При вызове самостоятельно AfxWinInit, необходимо объявить экземпляр класса CWinApp. Для консольного приложения то можно не для собственного класса из CWinApp и не вместо использования экземпляра CWinApp напрямую. Этот метод подходит, если решено оставить все функциональные возможности для приложения в пользовательскую реализацию main.
Примечание
При создании контекста активации для сборки, MFC использует ресурс манифеста предоставлен модулем пользователя.Контекст активации создается в AfxWinInit.Для получения дополнительной информации см. Поддержка контекстов активации в состоянии модуля 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;
}
Требования
Заголовок: afxwin.h
См. также
Ссылки
Функция main. Запуск программы