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

Awesomium c++: syntax error : missing ';' before '*'

本文关键字:c++ 错误 Awesomium 语法      更新时间:2023-10-16

我试图将c++代码与awesomium功能集成,但我遇到了很多错误。Visual Studio似乎不喜欢我对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;
};

谢谢!

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 */

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

除了潜在的依赖性问题外,问题是您的头不知道您想要使用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"