1.我在项目工程CSketchRoom中新建一个类class CAbstractComplexRecognition 
(这个类是通过ClassView来创建的)
2.然后在CSketchRoomView.h中做如下声明:
#include "AbstractComplexRecognition.h"
然后在头文件中声明变量:
  CAbstractComplexRecognition m_Recognition;
编译后出以下错误
error C2146: syntax error : missing ';' before identifier 'm_Recognition'
error C2501: 'CAbstractComplexRecognition' : missing storage-class or type specifiers
error C2501: 'm_Recognition' : missing storage-class or type specifiers
3.最奇怪的是如果不在头文件中声明变量,而是在CSketchRoomView的成员
函数中定义CAbstractComplexRecognition m_Recognition则一切正常,可以编译和执行。
遇此奇怪问题,百思不得其解,还请各位大侠指点!

解决方案 »

  1.   

    你把工程发到[email protected]。我看看。这种问题要看一下才知道。
      

  2.   

    检查CAbstractComplexRecognition的拼写,太长的名字很容易写错的,当定义变量的类的类型未知时(最大的可能就是写错字了),VC就会报这种错误.
      

  3.   

    CAbstractComplexRecognition的基类是什么?
    你的问题有两种可能
    一,你的类里面使用了一些API,它们在stdafx.h里面已经被包含了,这种可能性比较小
    二,你包含头文件的位置不正确,改变一下你 #include "AbstractComplexRecognition.h" 语句的位置,就可以解决问题了。
      

  4.   

    在CSketchRoomView.h中
    class CAbstractComplexRecognition;
      

  5.   

    check the 'm_Recognition' definition...
      

  6.   

    名字是正确的,因为在成员函数中的定义没有问题。
    调整#include "AbstractComplexRecognition.h"位置也试过了,试了好多次也不行。
    在CSketchRoomView.h中class CAbstractComplexRecognition会给工程带来很多问题。
    请大家再帮着想想啦。 happyparrot(快乐鹦鹉) ,我已经把源程序发给你了,请你帮我看看多谢。
      

  7.   

    在class CSketchRoomView前面加上一行class CAbstractComplexRecognition;
      

  8.   

    谢谢大家的指点,
    我现在在class CSketchRoomView前面加了class CAbstractComplexRecognition
    但是又报以下错误,
    error C2079: 'm_Recognition' uses undefined class 'CAbstractComplexRecognition'
    但是我明明声明了CAbstractComplexRecognition啊,
    而且头文件也加了。
      

  9.   

    我看一眼。我估计可以解决
    [email protected]