-2

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

简单类.cpp:

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

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

简单类.h:

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

谢谢!

4

2 回答 2

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

于 2013-02-22T12:04:46.927 回答
0

撇开潜在的依赖问题不谈,问题在于您的标头不知道您要使用Awesomium命名空间。

要么 (首选)在标题中明确说明您对 *web_core 的定义

class CSimpleClass
{
public:
    CSimpleClass(void);
    ~CSimpleClass(void);
    Awesomium::WebCore *web_core; //note the use of Awesomium::
};

或者 (如果你真的必须)在你的 using 指令之后包含你的标题

#include <Awesomium/WebCore.h>
using namespace Awesomium;
#include "SimpleClass.h"
于 2013-02-22T11:51:16.783 回答