Awesomium c ++:语法错误:缺少';'在'*'之前

时间:2013-02-22 11:44:36

标签: c++ pointers awesomium

我正在尝试将c ++代码与awesomium功能集成,但我遇到了很多错误。 似乎VisualStudio不喜欢我对WebCore元素的定义/声明。我从http://wiki.awesomium.com/tutorials/tutorial-1-hello-awesomium.html复制了它。 我已经简化了代码,直到这个,我仍然得到错误。

SimpleClass.cpp:

#include <Awesomium/WebCore.h>
include "SimpleClass.h"
using namespace Awesomium;

CSimpleClass::CSimpleClass(){   
    WebCore *web_core = WebCore::Initialize(WebConfig());
}
CSimpleClass::~CSimpleClass(){
}

SimpleClass.h:

class CSimpleClass
{
public:
    CSimpleClass(void);
    ~CSimpleClass(void);
    WebCore *web_core;
};

谢谢!

2 个答案:

答案 0 :(得分:3)

将您的SimpleClass.h标题更改为:

#pragma once
#ifndef SIMPLECLASS_H
#define SIMPLECLASS_H

// forward declarations
namespace Awesomium{
class WebCore;
}

class CSimpleClass
{
public:
    CSimpleClass(void);
    ~CSimpleClass(void);
    Awesomium::WebCore *web_core;
};

#endif /* SIMPLECLASS_H */

通过这种方式,您向编译器宣布命名空间WebCore中存在类型Awesonium,然后您可以使用它来声明成员指针CSimpleClass::web_core

答案 1 :(得分:0)

除了潜在的依赖性问题之外,问题是您的标头不知道您要使用Awesomium命名空间。

(首选)通过执行

在您的* web_core定义的标题中明确显示
class CSimpleClass
{
public:
    CSimpleClass(void);
    ~CSimpleClass(void);
    Awesomium::WebCore *web_core; //note the use of Awesomium::
};

(如果你真的必须)在使用指令后包含你的标题

#include <Awesomium/WebCore.h>
using namespace Awesomium;
#include "SimpleClass.h"