冬虫夏草c++;:语法错误:缺少'';在'之前*'; 我试图把C++代码和AuthoMeMe函数集成在一起,但我得到了很多错误。 VisualStudio似乎不喜欢我对WebCore元素的定义/声明。我是从你那里抄来的。 在此之前,我已经简化了代码,但仍然会出现错误

冬虫夏草c++;:语法错误:缺少'';在'之前*'; 我试图把C++代码和AuthoMeMe函数集成在一起,但我得到了很多错误。 VisualStudio似乎不喜欢我对WebCore元素的定义/声明。我是从你那里抄来的。 在此之前,我已经简化了代码,但仍然会出现错误,c++,pointers,awesomium,C++,Pointers,Awesomium,SimpleClass.cpp: #include <Awesomium/WebCore.h> include "SimpleClass.h" using namespace Awesomium; CSimpleClass::CSimpleClass(){ WebCore *web_core = WebCore::Initialize(WebConfig()); } CSimpleClass::~CSimpleClass(){ } 谢谢 撇开潜在的依赖性问题不谈,问

SimpleClass.cpp:

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

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

谢谢

撇开潜在的依赖性问题不谈,问题是您的头不知道您想要使用
Awesomium
名称空间

或者(首选)在标题中明确您对*web_核心的定义,方法是

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"
#包括
使用名称空间Awesomium;
#包括“SimpleClass.h”

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\u core

正在使用的名称空间不会神奇地应用于头文件。请避免在头文件中使用
正在使用的名称空间
。根据OP的包含顺序,转发声明是不必要的,因为编译器在SimpleClass.h获取之前已经知道WebCoreincluded@badgerr理想情况下,标头是自包含的,不依赖于其他文件中的包含顺序。@badgerr true,但该包含顺序会带来麻烦。正如molbdnilo指出的那样,标题应该始终是自包含的。这就是为什么在
*.cpp
文件中,您应该始终首先包括相应的头,然后才包括实现所需的头。因为如果在程序中的其他某个点包含了头,则缺少
Awesomium/WebCore.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 */