AfxWinInit

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)

Index