给定以下命名空间,我在哪里放置我的declspec(用于dll导出)我希望将所述命名空间中的所有方法导出到DLL中?
namespace AguiText {
void drawTextArea(AguiGraphicsManager *g, const AguiFont &font,const AguiRectangle &area,
const AguiColor &color, const std::vector<std::string> &lines,
AguiHorizontalAlignmentEnum horizontalAlignment, AguiVerticalAlignmentEnum verticalAlignment);
void divideText(std::vector<std::string> &words,
const std::string &text,const AguiFont &font, int maxWidth = -1);
void makeTextLines(const AguiFont &font,const std::vector<std::string> &words,
std::vector<std::string> &lineWords, int maxWidth );
void pointInTextArea(const AguiFont &font,
const AguiRectangle &area, const AguiPoint &point,
const std::vector<std::string> &lines, AguiRectangle &retRect,
int &retIndex, AguiHorizontalAlignmentEnum horizontalAlignment, AguiVerticalAlignmentEnum verticalAlignment);
}
由于
答案 0 :(得分:5)
无需导出命名空间。从编译代码的角度来看,名称空间是没有意义的。你不能在代码中引用它们,它们只是定义范围。
命名空间在名称修改过程中最终成为类/函数名称的一部分。一旦编译了源文件,它们就不是单独的实体。
如果要导出命名空间的内容,则需要导出这些实体,而不是命名空间本身。