网站首页  词典首页

请输入您要查询的计算机术语:

 

术语 AfxWinInit
释义 AfxWinInit

BOOL AFXAPI AfxWinInit(
     HINSTANCE hInstance,
     HINSTANCE hPrevInstance,
     LPTSTR lpCmdLine,
     int nCmdShow
    );

参数:
hInstance当前运行模块的句柄。
hPrevInstance应用程序前一个实例的句柄。对于基于Win32的应用程序,这个参数总是NULL。
lpCmdLine指向一个以null结尾的字符串,指定了应用程序的命令行。
nCmdShow指定了GUI应用程序的主窗口将如何显示。

说明:
这个函数是由MFC提供的WinMain函数调用的,它是基于GUI的应用程序的CWinApp初始化的一部分,主要用来初始化MFC。对于控制台应用程序,不使用MFC提供的WinMain函数,你必须直接调用AfxWinInit来初始化MFC。
如果你自己调用AfxWinInit,你必须声明一个CWinApp类的实例。对于控制台应用程序,你可以选择不从CWinApp基础你自己的类,而是直接使用CWinApp的实例。如果你决定在你的main函数的实现中将所有的工作留给你的应用程序,这样做是可以的。
例子程序TEAR演示了如何用MFC生成一个控制台应用程序。

示例:
// this file must be compiled with the /GX and /MT options:
//      cl /GX /MT thisfile.cpp

#include <afx.h>
#include <afxdb.h>
#include <iostream.h>

int main()
{
  // try to initialize MFC

  if(!AfxWinInit(::GetModuleHandle(NULL), NULL, ::GetCommandLine(), 0))
  {
    cerr << "MFC failed to initialize!" << endl;
    return 1;
  }

  // 试图与并不存在的ODBC数据库连接
  // (如果不初始化MFC,这根本不会起作用。)

  CDatabase db;
  try
  {
    db.Open("This Databsae Doesn't Exist");

    // 我们不会真正到达这里。

    cout << "Successful!" << endl;
    cout << "Closing ... ";
    db.Close();
    cout << "Closed!" << endl;
  }
  catch(CDBException* pEx)
  {
    // 我们到达了一个异常。输出错误信息。
    // (如果不初始化MFC,这根本不会起作用。)

    char sz[1024];

    cout << "Error: ";
    if(pEx->GetErrorMessage(sz, 1024)) cout << sz;
    else cout << "No error message was available";
    cout << endl;

    pEx->Delete();
    return 1;
  }

  return 0;
}

请参阅:
CWinApp, CWinApp: The Application Class, main, WinMain
随便看

 

MFC类库中文详解手册包含4274条MFC类库参考词条,基本涵盖了Microsoft基本类库中的类、全局函数、全局变量和宏的内容,是计算机编程的有利工具。

 

Copyright © 2004-2023 Winrtm.com All Rights Reserved
京ICP备2021023879号-40 更新时间:2024/10/6 14:38:39