InitInstance()初始化app的实例,你改了名字,连程序的实例都没有生成怎么能对?

解决方案 »

  1.   

    not mfc just C++, virtual function use!
      

  2.   

    windows编程要有WinMain函数,它被封装在CWINAPP类中,还有封装了很多其他必要的函数,根据你的需要去重载它们。
      

  3.   

    不是vc和c++不同,而是c++和mfc不同,mfc把api封装了,所以不太容易看懂
      

  4.   

    CWinApp 的构造函数有以下函数:1。InitInstance(),2.run(), 这里面封装了winmain(),你可以看一看《深入浅出MFC》,里面讲得很详细!
      

  5.   

    Initinstance是虚函数,是因为这个函数不是被你调用,而是由MFC程序框架调用的,改了名字,程序编译没有问题,但是MFC程序执行时,由于你没有冲在这个函数,它会调用基类WinApp::InitInstance()函数,其实这个函数什么也不做,看看MFC的源码,你就知道,InitInstance函数调用完毕后,如果m_pMainWnd成员为NULL,程序就会退出,所以你的程序就无法运行下去了,具体过程,你可以用单步调试进入函数体的方式调试看看就会明白了,(就是不停的按F11键即可),另外WinMain函数并非封装在WinApp类中,而是一个MFC的全局函数,它调用另一个全局函数Afx什么的,忘了,你可以自己调试看看。
      

  6.   

    哈哈!你和我差不多,不过好像我要比你多懂一些。不是C++和VC++不同,它们根本就不是一个东东。从本质上讲,VC++只不过是C++的编译器罢了,想要学VC++其实就是学MFC,要不然就没必要学它了。你可以先看看《VC++技术内幕》,可不要被它的名字吓坏了。
      

  7.   

    对此最完整的解释请参看侯俊杰<深入浅出MFC>.我正在研究.可以下载.
      

  8.   

    VC与C++有很大不同吗?有很大的不同,就好像青菜和电炒锅,完全不同。
      

  9.   

    to: hbxffrm(河北小房) 
    在哪有下载啊,是文本文件吗?
      

  10.   

    如果你想了解这个问题,推荐你看看侯捷的 深入浅出MFC 有详细的解说的。VC 和C++的关系是,VC利用C++的一个开发环境,VC最大的特点是它的MFC类库,开发WINDOWS下的应用程序的类库,你只有具有了C++的基础后,再来学习MFC类库!
      

  11.   

    VC是使用C++的一个工具软件,它的功能有编缉、编译、调试等等,总之很强大了!
      

  12.   

    如果只要编写一些简单程序,用AppWizard导出地程序修改就可以了。
    如果想要深入学习VC,必须了解MFC,Win32编程。
    先看一两本粗略介绍VC的书,有基础了在前进。
    MFC的讲解没有特别好的书,《MFC24学时教程》可以带你入门。
    《深入浅处MFC 2E》比较好。但你看它之前要有一定的基础。否则
    你会很吃力。里面的第三章是最重要的地方。一定要细看。
    另外,多读别人的代码,多看MFC例子,MSDN。
    多买点书,每本不一定要仔细读,看一些写的比较好的章节和
    作为参考就可以了。这点是我的个人习惯,好像很多人不认同。
    我的书买的多会,看的少。
    如果你会C++,入门应该很快,剩下的就是积累了。
      

  13.   

    To :FrankZhang123(FrankZhang123) 
    你是说Initinstance是虚函数是一个纯虚函数吗?还有为何定义了一个派生类对象HelloAppl没有使用它呢?难道是VC自动使用CWinApp派生的对象?
      

  14.   

    我把第行的virtual关键字去掉程序还是可运行看来InitInstance();在CWinApp中是个虚函数
     virtual BOOL InitInstance();