求助!!! AfxWinInit(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdLine, int nCmdShow)请问一下再执行WinMain函数之前怎么会调用这个函数呢? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 AfxWinInitBOOL 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;} winmain是入口,AfxWinInit 是由winmain调用的 那怎么先进入AfxWinInit,后进入winmain的啊? 编程高手们我想编一个数据采集界面 VS2010编译工程链接的问题 关于WebBrowser的问题 问一个菜鸟问题,一个Lib库怎么用啊,没有.h文件 关于同一个dll被多个进程加载的共享问题? 请问编辑框! 关于CArry的问题 请问怎么可以提取DLL,EXE文件里的图标 关于eventlog??? 如果我有一个CWnd* 我如何获取其对应的HWnd??? 求教:从一个.txt文件中读出字符,按照要求放入字符串或字符数组中 关于写嵌套dll时遇到的问题
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;
}