BOOL AFXAPI AfxWinInit (HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdLine, int nCmdShow )
매개 변수
hInstance
현재 실행 중인 모듈의 핸들。
hPrevInstance
Application.nbsp;의 이전 인스턴스에 대 한 핸들 Win32 기반 응용 프로그램에 대 한이 매개 변수는 항상 NULL(&N)。
lpCmdLine
응용 프로그램에 대 한 명령줄을 지정 하는 null로 끝나는 문자열을 가리킵니다。
nCmdShow
GUI 응용 프로그램의 주 창 것 이라고 표시 하는 방법을 지정 합니다.
주의
이 함수는 GUI 기반 응용 프로그램, MFC 초기화의 CWinApp 초기화의 일부로 MFC 제공한 WinMain 함수에 의해 호출 됩니다. MFC 제공 WinMain 함수를 사용 하지 않는 하는 콘솔 응용 프로그램에 대 한 직접 MFC를 초기화 하려면 AfxWinInit 를 호출 해야 합니다.
AfxWinInit 자신을 호출 하는 경우 CWinApp 클래스의 인스턴스를 선언 해야 합니다. 콘솔 응용 프로그램에 대 한 CWinApp 에서 고유의 클래스를 파생 하 고 대신 CWinApp 의 인스턴스를 직접 사용 않기로 선택할 수 있습니다. 이 방법은 기본 구현에서 응용 프로그램에 대 한 모든 기능을 떠날 결정 하는 경우에 적절 한。
눈물 샘플에서는 MFC를 사용 하 여 콘솔 응용 프로그램을 확인 하는 방법을 보여 줍니다.
예제
/ /이 파일 /MT /GX 옵션으로 컴파일해야:
/ / cl /GX /MT thisfile.cpp
# include lt;afx.h >
# include <afxdb.h>
# include <iostream.h>
int main)
{
/ / MFC를 초기화 하려고
if (!.NULL AfxWinInit(::GetModuleHandle(NULL):: GetCommandLine(), 0))
{
cerr << "MFC를 초기화 하지 못했습니다!" << endl;
반환 1;
}
/ / 존재 하지 않는 ODBC 데이터베이스에 연결 하려고
/ / (이 작동 하지 않을 모든 MFC를 초기화 하지 않고)
CDatabase db;
시도
{
db입니다.열기 ("이이 Databsae 존재 하지 않습니다");
/ / 우리가 여기에 얻을 현실적으로 안
cout << "성공!" << endl;
cout << "닫기... ";
db입니다.Close ();
cout << "폐쇄!" << endl;
}
catch (CDBException * pEx)
{
/ / 우리가 예외가 있어! 오류 메시지 인쇄
/ / (이 MFC를 초기화 하지 않고 작동 하지 않을 것)
sz 숯불 [1024];
cout << "오류:";
경우 (pEx-> GetErrorMessage (sz, 1024))
cout << sz;
다른
cout << "오류 메시지 없음 사용할 수 있었습니다";
cout << endl;
pEx-> Delete();
반환 1;
}
0; 반환
}
참고 항목nbsp;CWinApp, CWinApp: 응용 프로그램 클래스, 주, WinMain(&N)