Я пытаюсь интегрировать код 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;
};
Спасибо!
Измени свой 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
,
Помимо потенциальных проблем с зависимостями, проблема в том, что ваш заголовок не знает, что вы хотите использовать 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"