AfxWinInit
MFC에서 제공에서 호출 되는이 함수 WinMain 의 일부로 함수는 CWinApp MFC를 초기화 하는 GUI 기반 응용 프로그램을 초기화 합니다.
BOOL AFXAPI AfxWinInit(
HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPTSTR lpCmdLine,
int nCmdShow
);
매개 변수
hInstance
현재 실행 중인 모듈의 핸들입니다.hPrevInstance
이전 응용 프로그램의 인스턴스 핸들입니다.Win32 기반 응용 프로그램의 경우이 매개 변수는 항상입니다 NULL.lpCmdLine
응용 프로그램에 대 한 명령줄을 지정 하는 null로 끝나는 문자열을 가리킵니다.nCmdShow
GUI 응용 프로그램의 주 창에는 표시 방법을 지정 합니다.
설명
콘솔 응용 프로그램의 경우에 사용 하지 않습니다 MFC 제공한 WinMain 함수를 호출 해야 AfxWinInit 직접 MFC를 초기화 합니다.
호출 하는 경우 AfxWinInit 의 인스턴스를 선언 해야 자신는 CWinApp 클래스.콘솔 응용 프로그램에 대 한 사용자 고유의 클래스를 파생 하지 선택할 수 있습니다 CWinApp 의 인스턴스를 대신 사용 하 고 CWinApp 직접.이 방법은 응용 프로그램의 모든 기능을 구현에 두려면 결정 한 경우 적절 한입니다 주.
[!참고]
어셈블리에 대 한 활성화 컨텍스트를 만들 때 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