我为C ++编写了一个Objective-C Wrapper,所以在主文件中,我只需要使用C ++ Code。在一个测试项目中它完美地运行,所以我想在一个相当大的游戏中实现。问题是,我只用了
之后#include "ViewWrapper.hpp"
在我的基节点类中(来自Cocos2d-x的CCNode.h
)我在另一个文件中获得了大量的Parse,Semantic和Leixcal或Prepocessor问题(named_params.hpp
来自" Boost" )没有真正使用它,只写包含。如果我删除它,一切正常。有谁知道这可能是什么原因?
(在我的测试项目中,我也将其包含在CCNode
中,没有问题。)
修改:代码ViewWrapper.hpp
:
#ifndef __Cocos__ViewWrapper__
#define __Cocos__ViewWrapper__
#include <CoreGraphics/CGGeometry.h>
#include <CoreGraphics/CGColor.h>
class ViewWrapper
{
public:
const char* accessibilityLabel();
void setAccessibilityLabel(const char* accessibilityLabel);
CGRect accessibilityFrame();
void setAccessibilityFrame(CGRect accessibilityFrame);
CGRect frame();
void setFrame(CGRect frame);
CGColorRef backgroundColor();
void setBackgroundColor(CGFloat r, CGFloat g, CGFloat b, CGFloat a);
ViewWrapper (CGRect frame);
ViewWrapper (void);
~ViewWrapper (void);
private:
struct Impl;
Impl* impl;
};
#endif /* defined(__Cocos__ViewWrapper__) */
希望有所帮助。
错误在struct nil {...}
。也许它有一些nil的问题,因为Objective-C使用nil而我的Wrapper包含了Objective-C代码?但我的标题是.hpp
文件......
答案(无法正确回答,因为它处于暂停状态): 我删除了两个包含
#include <CoreGraphics/CGGeometry.h>
#include <CoreGraphics/CGColor.h>
并使用cocos标头,如CCGeometry.h
和ccTypes.h
,因此标头没有Objective-C代码,编译器也不会与nil的boost版本混淆。
答案 0 :(得分:1)
我的钱在一个类,枚举,枚举类或结构声明后缺少;
:
struct AprilFool
{
}
// IMPAHTANT:
;
// END IMPAHTANT
答案 1 :(得分:0)
该文件包含哪些文件扩展名?所有错误都来自?
就编译器而言,标题不存在。他们只编译源文件。任何已编译的头文件都会被有效地复制到源文件&#34;中,就在include语句所在的位置。
因此,如果您从.m文件中包含此文件,则会将其编译为.m(Objective-C)。无论头部是否有后缀&#34; .hpp&#34;。 (如果你想了解更多相关内容,请查阅&#34;编辑单元&#34;在一本关于C的好书中,或听听NSBrief第113集,在那里我被要求解释所有事情Objective-C ++:{{3 }})。
它还有助于了解您拥有的内容。这个标题的包含是第一个吗?持续?下一个包含错误的那个包括在它之后吗?文件中是否包含此代码?如果你把它作为最后一个包含它,它是否有效,或者只是在包含后的下一行错误?在一个标题的末尾做出的错误,毕竟&#34;溢出&#34;进入下一行,是由include语句或同一标题复制粘贴的那一行。