我在 MSVC++ 2010 中创建 DLL 的经验并不丰富,可能只是学习曲线的一部分。目前我有一个非常大的文件,其中包含大约 10 个不同的类。我必须将文件分解为多个文件并将相关类移到同一个文件中。所以在继续之前想从经验丰富的开发人员那里了解我的情况。
类似于以下内容
// Header
namespace collections
{
classA
classB
ClassC
ClassD : ClassA,ClassB
}
// CPP
namespace collections
{
classA
{
// Implementations
}
// Rest of the classes
}
分解成单独的文件后
// ClassA.h
namespace Collections
{
ClassA
}
// ClassB.h
namespace Collections
{
ClassB
}
// Implentations etc
我主要关心的是 dllexport/dllimport 存储类属性的使用因为文件将被分解我将不得不使用以下
#ifdef MAKEDLL
# define EXPORT __declspec(dllexport)
#else
# define EXPORT __declspec(dllimport)
#endif
针对类导出/导入它们。但是将这些行放在将要创建的每个头文件中(使用一个命名空间“Collections”),这在编译或代码生成步骤时会产生任何不良影响吗?我在网上环顾四周,发现人们最抱怨链接器错误/警告,其中特定成员被重新定义或在创建 DLL 时找不到。这绝对是一个已解决的问题,只是我不知道哪种方法是最好的和正确的方法。最后我只需要创建一个 DLL。我不需要创建多个 DLL。
非常感谢任何指导或帮助。谢谢