указатели — Awesomium c ++: синтаксическая ошибка: отсутствует ‘;’ до ‘*’

Я пытаюсь интегрировать код 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

Решение

Измени свой 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,

3

Другие решения

Помимо потенциальных проблем с зависимостями, проблема в том, что ваш заголовок не знает, что вы хотите использовать 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"
0

По вопросам рекламы [email protected]