在C ++,VS 2010中创建类库的困惑

时间:2012-09-12 18:38:14

标签: c++ visual-studio-2010

我正在制作一个需要一些数学的3D游戏引擎,但我希望通过将数学放入库中来更好地调制我的代码。现在我使用名为“DataTypes.hpp”的头文件,它具有我的引擎所需的所有结构和数据类型。这还包括我的数学文件,“VMMath.hpp”(这用作包装器),在这里我包括我的vector,matrix和quaternion类的其他四个头文件。

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

从我所看到的,库必须是一个头和源,它使用extern或static关键字,因此头可以使用源中的方法。 MSDN上的示例显示了名称空间中的类,没有带静态方法的构造函数/析构函数。但是我发现很快就会向你展示它的能力。

因此可以从这种文件结构中创建一个库:

< -Project Dir->

  • (其他来源/文件夹)

  • VMMath

    - VMMath.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

我希望如果我已经产生了太多的阅读,我就会清楚地表达自己的想法。

1 个答案:

答案 0 :(得分:1)

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