c++ - 与在 C++、VS 2010 中创建类库混淆

标签 c++ visual-studio-2010

我正在开发一个需要一些数学知识的 3d 游戏引擎,但我想通过将数学知识放入库中来更好地调整我的代码。现在我正在使用一个名为“DataTypes.hpp”的头文件,它具有我的引擎需要的所有结构和数据类型。这还包括我的数学文件“VMMath.hpp”(它用作包装器),在这里我还包括四个其他头文件,用于我的 vector 、矩阵和四元数类。

我的方法是我希望 DataTypes 成为一个预编译的头文件,而 VMMath 代码成为一个库(静态或 dll,老实说我不确定是哪个)。那时我不必将 DataType header 放在所有 VMMath 源中,也不必减少项目的相关源文件。

据我所知,一个库必须是一个头文件和一个源代码,它使用 extern 或 static 关键字,以便头文件可以使用源代码中的方法。 MSDN 上的示例显示了命名空间中的一个类,它没有带静态方法的构造函数/析构函数。但我发现要真正向您展示它的能力有点短。

那么是否可以从这种文件结构创建一个库:

<-项目目录->

  • (其他来源/文件夹)

  • VM数学

    -- 虚拟机数学.hpp

    • 数学

      -- CVector2.hpp

      -- CVector2.cpp

      -- CPoint2.hpp

      -- CVector3.hpp

      -- CVector3.cpp

      -- CPoint3.hpp

      -- CVector4.hpp

      -- CVector4.cpp

      -- CMatrix3.hpp

      -- CMatrix3.cpp

      -- CMatrix4.hpp

      -- CMatrix4.cpp

      -- CQuaternion.hpp

      -- CQuaternion.cpp

我希望这是有道理的。所以我可以看到这个工作的一种方法是让 VMMath.hpp 包含所有类,并且 VMMath.cpp 包含所有类源,但这不是很容易维护。或者我是否必须将每个类作为一个单独的 dll?

这是我读过的来自 codeproject 的一篇文章,但它没有显示包含多个文件的 dll:http://www.codeproject.com/Articles/6351/Regular-DLL-Tutor-For-Beginners

我希望我已经说清楚了,如果我产生了过多的阅读,我们深表歉意。

最佳答案

对于任何类型的库,头文件或源文件的数量没有限制。

关于c++ - 与在 C++、VS 2010 中创建类库混淆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12394349/

相关文章:

C++0x Lambda 开销

c++ - 创建 std::vector 减去一个元素的拷贝的最快方法

c++ - 为什么我在使用 valgrind 时会出现内存错误? (C++,抽象语法树求值)

c++ - 10341 - 西澳解决

asp.net-mvc - 安装 MVC3 后,我无法在 Visual Studio 2010 上创建或打开 MVC2 项目

c# - 一个 MSTest 设置文件中的不同 UnitTest 执行

c# - 一个文件在 visual studio IDE 中一直打开

C++成员变量在构造函数后丢失值

c++ - 不能使用枚举类作为 unordered_map 键

c++ - 如何突出显示 QListWidgetItem 文本中的特定字母?