第一次尝试创建一个包含许多类的DLL,捆绑在一个DLL中
First time trying to create a DLL with a lot of classes, bundled in one
我想用Visual Studio 2015创建一个DLL。我为此创建了一个项目。我开始添加类,现在我在编译时有一千多个错误。看起来我与低级C类型和C++本身有冲突?
这是代码:https://github.com/Lorac/GrimDawnCharacterTrainer
characterbio.h(6): error C3646: 'level': unknown override specifier (compiling source file srcCharacterBio.cpp)
characterbio.h(6): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int (compiling source file srcCharacterBio.cpp)
characterbio.h(7): error C3646: 'experience': unknown override specifier (compiling source file srcCharacterBio.cpp)
characterbio.h(7): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int (compiling source file srcCharacterBio.cpp)
characterbio.h(8): error C3646: 'modifierPoints': unknown override specifier (compiling source file srcCharacterBio.cpp)
我使用的是预编译的头,是吗?我可以提供一些关于如何解决这个问题的指导。
include指令不正确。
CharacterBio.h
#pragma once
class CharacterBio
{
public:
uint32_t level;
uint32_t experience;
uint32_t modifierPoints;
uint32_t skillPoints;
uint32_t devotionPoints;
uint32_t totalDevotion;
float physique;
float cunning;
float spirit;
float health;
float energy;
void read(GDCFile *);
void write(GDCFile *);
};
CharacterBio.cpp
#include "pch.h"
#include "CharacterBio.h"
#include "GDCFile.h"
#include "block.h"
#include <cstdint>
void CharacterBio::read(GDCFile *gdc)
{
// <snip>
在CharacterBio.h中,您使用<cstdint>
中的类型,但不将其包含在头文件中。头文件应该包括它使用的所有内容,或者至少有适当类型的前向声明。
即使包含CharacterBio.cpp中的CharacterBio.h,#include <cstdint>
也位于#include "CharacterBio.h"
之后。
编写CharacterBio.h文件的合适方法是:
#pragma once
#include <cstdint>
class GDCFile;
class CharacterBio
{
public:
uint32_t level;
uint32_t experience;
uint32_t modifierPoints;
uint32_t skillPoints;
uint32_t devotionPoints;
uint32_t totalDevotion;
float physique;
float cunning;
float spirit;
float health;
float energy;
void read(GDCFile *);
void write(GDCFile *);
};
其余的代码也是如此——很少有头文件包含任何内容!
相关文章:
- 在 C++/CLI 中将 .NET 事件从一个 DLL 引发到另一个 DLL
- 从 .lib 文件创建一个.dll文件
- 我可以用C++/WinRT编写一个DLL,供windows桌面应用程序(而不是UWP)或Unity插件使用吗
- 将 std::string 作为参数从一个 DLL 传递到另一个 DLL 引发访问冲突错误
- Java加载DLL,该DLL从JNI中的另一个DLL导出方法
- 如何在另一个 DLL 上使用 '/DELAYLOAD' 的 DLL
- 在一个 DLL 中嵌入所有必需的 DLL
- 用C++为java构建一个dll,它正在调用另一个dll(Eclipse上的JNI)
- 是否有从另一个DLL中加载DLL的最佳实践
- 如果你链接到一个DLL,如果该DLL丢失,是否可以启动你的可执行文件
- 第一次尝试创建一个包含许多类的DLL,捆绑在一个DLL中
- 如何正确删除从另一个DLL接收的派生对象
- 在 jmpq 上崩溃到另一个 dll 中的函数与 mingw64
- 将一个 dll 导入另一个 dll C++
- Visual Studio,C++,在另一个DLL导出的类中使用DLL导出的类
- 从另一个 dll 链接动态 dll 会导致错误
- 将一个C++ DLL 加载到 matlab 中,该 matlab 调用另一个 DLL 中的函数
- 用C++中的另一个Dll调用Dll
- LNK2019错误一个DLL链接到MFC DLL
- 导出另一个dll的静态成员