微信公众号 
图码生活

每天发布有五花八门的文章,各种有趣的知识等,期待您的订阅与参与
电脑报 1992-2001 十年文章全集
电脑报 1992-2001 十年文章全集
包含从 1992 年 - 2001 年间,两万余篇期刊文章,查询最少输入两个字符
随便看看
读取中
读取中
标题解决VC中增加类文件的问题
栏目游戏世界
作者刘军发
发布1998年第40期13版
  一、通过“Add To Project”向当前工作区A增加DibDoc类头文件及应用文件,在A的类A1中使用DibDoc类后编译,出现如下错误:
  error C2501:'CDibdoc':missing dec1-specifiers
  于是作了以下处理,解决了出现的问题:
  1.检查发现在类A1中,头文件包含#include "dibdoc.h"放在了#include "stdafx.h"之前;
  2.纠正上述错误,编译出现如下错误:
  error C2065:'WM_DOREALIZE':undeclared identifier
  经分析发现,不能识别消息,不能识别命令(ID号)等类似错误均因“dibdoc.h”摆放位置不正确所致,建议:在各类的应用文件中,该类的头文件包含最好放在所有包含命令的最后。
  二、编译通过后,连接、执行时,出现如下错误:
  Linking...
  dibdoc.obj:error LNK2001:unresolved external symbol "struct HDIB_*_stdcall ReadDIBFile(class CFile&)"(?ReadDIBFile@@YGPAUHDIB_@@AAVCFile@@@Z)
  dibdoc.obj:error LNK2001:unresolved external symbol "int_stdcall SaveDIB(struct HDIB_*,class CFile&)"(?SaveDIB@@YGHPAUHDIB_@@AAVCFile@@@Z)
  .\Debug/diblook.exe:fatal error LNK1120:2 unresolved externals
  Error executing link.exe.
  反复检查才发现DibDoc类的一个相关文件myfile.cpp没有同时拷贝、加入工程中来。以后又发现此类连接性错误,都是因为有关文件不在当前工程目录下所致。
  三、解决了上述问题,程序正确执行,但在启动ClassWizard向DibDoc类加入消息入口时,在ClassName列表框中,却见不到DibDoc类,原来ClassWizard不能自动管理通过“Add To Project”增加的文件。
  解决办法:启动资源管理器,删除该工程目录下.clw文件,再启动ClassWizard,重建.clw文件即可。也可通过编辑原.clw文件,按规定格式加入DibDoc类说明来达到同样的效果。