代码之家  ›  专栏  ›  技术社区  ›  gargantuan

OpenFET导致了:ISO C++禁止声明“MyC类”,没有类型

  •  1
  • gargantuan  · 技术社区  · 15 年前

    现在它不会编译任何东西,我得到的错误不到200个。这一切只是螺旋式地失去控制,无法在任何设备上编译。正如我所说的,一切都很完美,我没有更改任何一行代码,我只是切换了活动SDK。

    Error 1: ISO C++ forbids of declaration 'BrickControlLayer' with no type
    

    单击此错误会将我带到另一个类的头文件。。。

    //  GameScene.h
    
    #import <Foundation/Foundation.h>
    #import "cocos2d.h"
    #import "brickSprite.h"
    #import "BrickControlLayer.h"
    #import "GameState.h"
    #import "ScoreController.h"
    #import "FeedbackLayer.h"
    #import "TimeBar.h"
    
    @interface GameScene : Layer {
    
        GameState *gameState;
        ScoreController *scoreController;
        CocosNode *spriteHolder;
        brickSprite *targetBrick;
    
        // Heres the line it takes me too <<<<<<<<<<<<<<<<<
        BrickControlLayer *controls;
    
        NSInteger difficulty;
        NSMutableArray *pointsLookupArray;
        BitmapFontAtlas *scoreLabel;
        FeedbackLayer *feedback;
        NSDate *startTime;
        TimeBar *timeProgress;
        int rowScanCount, foundRows;
    }
    
    // methods here....
    
    @end
    

    我是新来的,所以请容忍我。我很困惑,因为我清楚地说明了这一点 *controls 是那种类型的 BrickControlLayer '. 所以我认为“BrickControlLayer”本身有问题。

    这是标题。。。

    //  BrickControlLayer.h
    
    #import <Foundation/Foundation.h>
    #import "cocos2d.h"
    #import "brickSprite.h"
    #import "HighScores.h"
    
    @interface BrickControlLayer : Layer{
    
        CocosNode *spriteHolder;
        CGPoint touchedStartPoint, moveFromPoint;
        brickSprite *touchedBrick;
        BOOL editorMode;
        int movecount;
    
        // Control buttons
        AtlasSpriteManager *buttonManager;
        AtlasSprite *rotLeft, *rotRight, *newBrick, *deleteBrick, *makeTarget, *save, *run;
    
        BOOL tapToContinue;
    
    }
    
    @property (retain, readwrite) CocosNode *spriteHolder;
    @property (retain, readwrite) brickSprite *touchedBrick;
    
    -(void)showEditorControls;
    -(void)selectBrickAtLocation:(CGPoint)location;
    -(void)hideEditorControls;
    -(void)deactivate;
    
    @end
    

    我经历了一次又一次。以前一切都很好,我就是想不出来。我一直在谷歌上搜索,唯一突然出现的是“转发声明”一词,但这对我来说没有任何意义,我发现的所有信息都在谈论结构。

    我怀疑这些错误更多的是表明我在做很多其他错误的事情,而不是犯一个简单的一行打字错误或其他什么。有人能用外行的语言解释一下这里发生了什么吗?

    4 回复  |  直到 15 年前
        1
  •  1
  •   Jason    15 年前

    杰森来自OpenFeint。如果您想向openfeint.com上的devsupport发送一个代码示例来演示这个问题,我们将为您查看它。听起来您可能包含了.CPP文件而不是.MM文件中的头文件。

    希望有帮助, -杰森·西特伦 -方正;首席执行官,Aurora Faint

        2
  •  1
  •   CB Bailey    15 年前

    BrickController BrickControlLayer 所以我不认为你已经发布了编译器实际上在抱怨的那一行。

    话虽如此,我认为你的根本问题是,你试图编译看起来是目标C的文件,从错误消息中,它认为它是一个ISO C++编译器。

        3
  •  0
  •   Colin Gislason    15 年前

    您是否遵循了表中列出的所有步骤 Integrating the OpenFeint SDK

    或者,您可以创建一个Objective-C++类,该类与OpenFeint接口。然后,您的所有Objective-C类可以保持不变,但可以调用OpenFeint处理程序类。

        4
  •  0
  •   Joe Cannatti    15 年前

    您是否已将包含或导入OpenFeint的所有文件重命名为.mm?您还尝试过在构建设置中关闭(或打开)“为拇指编译”吗?