原因是你的Platform SDK库版本太老,(98年的吧,早就过时了),不支持新函数(如GetWindowLongPtr等),快去Microsoft当一个新的Platform SDK吧。最新版本是今年2月份的!

解决方案 »

  1.   

    to Maple424(枫舞):
       谢谢你的参与,不过<<visual c++ 技术内幕>>(第四版) 可是针对 visual c++ 5.0 写的.
       那时还没到98年呢(作者 david 97年就死了!) ,恐怕不是你说的原因. 
      

  2.   

    第一个问题:
    把 bool CMyApp::InitInstance() 改成 BOOL CMyApp::InitInstance()第二个问题:
    你在录入CMyFrame的类说明时是不是丢了GetMessageMap的说明,或者你录入的程序和潘大哥讲的不对应。
      

  3.   

    1.请问bool和BOOL都是什么意思?
    2.录入绝对没问题,你们可以找原书看一下.
      

  4.   

    有没有把改设置的:在Setting下改成Use MFC as a share dll!
      

  5.   

    c:\program files\microsoft visual studio\myprojects\kk\kk.cpp(14) : error C2509: '_GetBaseMessageMap' : member function not declared in 'CMyFrame'
            c:\program files\microsoft visual studio\myprojects\kk\kk.h(10) : see declaration of 'CMyFrame'
    c:\program files\microsoft visual studio\myprojects\kk\kk.cpp(14) : error C2509: 'GetMessageMap' : member function not declared in 'CMyFrame'
            c:\program files\microsoft visual studio\myprojects\kk\kk.h(10) : see declaration of 'CMyFrame'
    to fz_zhou(vcfan): 下面就是改后的结果.错误多了几个.  c:\program files\microsoft visual studio\myprojects\kk\kk.cpp(14) : warning C4273: 'protected: static struct AFX_MSGMAP const  CFrameWnd::messageMap' : inconsistent dll linkage.  dllexport assumed.
    c:\program files\microsoft visual studio\myprojects\kk\kk.cpp(14) : error C2491: 'CMyFrame::CFrameWnd::messageMap' : definition of dllimport static data member not allowed
    Error executing cl.exe.
      

  6.   

    ??
    很奇怪阿,只要按照fz_zhou(vcfan) 的,我试了试,发现没有这些原因阿
      

  7.   

    因为这个我试过,MFC是一个当然要用到MFC库了1`