如题
解决方案 »
- 列表框CListCtrl修改行高
- 求向量间的距离,代码修改
- 怎样实现屏幕旋转180度
- 如何在VC里对系统环境变量进行设置,SetEnvironmentVariable函数不能设置系统环境变量。
- 调试的问题
- 我有一个服务器端程序,但是只能连一个客户端,请问怎样修改后,才能同时处理多个客户端?
- 怎样实现以最少的资源在线程中一直读串口的数据?
- 为什么 gethostbyaddr 得到的主机名有些会多一些字符?
- ◆→请问如何得到工具条上某按钮被按下的时间?
- ((CEditView*)m_viewList.GetHead())->SetWindowText(NULL);??
- 两个有关编译时"意外的类型"的问题
- 问几个api函数的意义????
HINSTANCE hInstance, // handle to current instance
HINSTANCE hPrevInstance, // handle to previous instance
LPSTR lpCmdLine, // pointer to command line
int nCmdShow // show state of window
);
同樣MFC也有winmain函数.
WinMain()函数是应用程序开始执行时的入口点,通常也是应用程序结束任务退出时的出口点。它与DOS程序的main()函数起同样的作用,有一点不同的是,WinMain()函数必须带有四个参数,它们是系统传递给它的。WinMain()函数的原型如下: int PASCAL WinMain( HINSTANCE hInstance, //当前实例句柄HINSTANCE hPrevInstance, //前一个实例句柄LPSTR lpCmdLine, //命令行字符int nCmdShow) //窗口显示方式 第一个参数hInstance,是标识该应用程序当前的实例的句柄。它是HINSTANCE类型,HINSTANCE是Handle of Instance的缩写,表示实例的句柄。hInstance是一个很关键的数据,它唯一的代表该应用程序,在后面初始化程序主窗口的过程中需要用到这个参数。 这里有两个概念,一个是实例,一个是句柄。实例代表的是应用程序执行的整个过程和方法,一个应用程序如果没有被执行,只是存在于磁盘上,那么就说它是没有被实例化的;只要一执行,则说该程序的一个实例在运行。句柄,顾名思义,指的是一个对象的把柄。在Windows中,有各种各样的句柄,它们都是32位的指针变量,用来指向该对象所占据的内存区。句柄的使用,可以极大的方便Windows管理其内存中的各种对象。
第二个参数是hPrevInstance,它是用来标识该应用程序的前一个实例句柄。对于基于Win32的应用程序来说,这个参数总是NULL。这是因为在Win95操作系统中,应用程序的每个实例都有各自独立的地址空间,即使同一个应用程序被执行了两次,在内存中也会为它们的每一个实例分配新的内存空间,所以一个应用程序被执行后,不会有前一个实例存在的可能。也就是说,hPrevInstance这个参数是完全没有必要的,只是为了提供与16位Windows的应用程序形式上的兼容性,才保留了这个参数。在以前的16位Windows环境下(如Windows3.2),hPrevInstance用来标识与hInstance相关的应用程序的前一个句柄。第三个参数是lpCmdLine,是指向应用程序命令行参数字符串的指针。如在Win95的“开始”菜单中单击“运行”,输入“easywin hello”,则此参数指向的字符串为“hello”。最后一个参数是nCmdShow,是一个用来指定窗口显示方式的整数。这个整数值可以是SW_SHOW、SW_HIDE、SW_SHOWMAXIMIZED、SW_SHOWMINIMIZED等,关于这些值的含义,将在下一节说明。
用法如下:
CString command;
command.Format("%s",GetCommandLine());