深入浅出MFC用的是VC++5.0
是不是版本太早期了
这两句句编译不过(原文):
wc.hbrBackground = GetStockObject(WHITE_BRUSH); // 窗口后台颜色
提示:
cannot convert from 'HGDIOBJ' to 'HBRUSH'
switch (wmId)
{
case IDM_ABOUT:
DialogBox(_hInst,
  "AboutBox", // 对话框资源名称
   hWnd, // 父窗口
   (DLGPROC)About); // 对话框函数名称
break;
                }
提示:
 'IDM_ABOUT' : undeclared identifier
还有就是,这本书的例子是不是很多例子都编译不过,毕竟现在都VC10.0了

解决方案 »

  1.   

    wc.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH); // 窗口后台颜色
      

  2.   

    当然要做相应的修改啦,连VC6移植到高版本的VC都要修改一些东西,何况书中使用的VC4.0/5.0呢? 
    'IDM_ABOUT' : undeclared identifier可能是你没有包含资源文件Resource.h。另外,HGDIOBJ是一个指向GDI对象的指针。搞懂这点就好了。
      

  3.   

    IDM_ABOUT你要在你的文件里面定义啊,可以在resource.h定义
      

  4.   

    1. 强制转化
    2. include "resource.h"
      

  5.   

    请问一下resource.h里面应该怎么写啊
      

  6.   

    resource.h里面应该怎么定义IDM_ABOUT啊
    我的resource.h这样,还是说我没定义:#ifdef APSTUDIO_INVOKED
    #ifndef APSTUDIO_READONLY_SYMBOLS
    #define _APS_NEXT_RESOURCE_VALUE        101
    #define _APS_NEXT_COMMAND_VALUE         40001
    #define _APS_NEXT_CONTROL_VALUE         1001
    #define _APS_NEXT_SYMED_VALUE           101#define IDM_ABOUT 000
    #define IDM_EXIT 001
    #endif
    #endif
      

  7.   

    我用vc2010编译通过了,也是命令行编译的,recourse.h文件侯老给放在了那本书自带的光盘里,另外还有图标,不知道网上有没有下的,如果你的版本太高,连接时还需要拷贝下libc.lib这个库文件