gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-28 07:57:31 26 4
gpt4 key购买 nike

我正在开发一个需要一些数学知识的 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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com