【发布时间】:2010-11-10 14:41:52
【问题描述】:
我正在尝试将我的库作为 DLL 导出,但对于使用 std::vector 的一个特定类,我收到了很多这样的警告:
template <typename T>
class AGUI_CORE_DECLSPEC AguiEvent {
typedef void (*AguiCallbackFptr)(T arg, AguiWidget* sender);
std::vector<AguiCallbackFptr> events;
public:
void call(AguiWidget* sender, T arg) const;
void addHandler(AguiCallbackFptr proc);
void removeHandler(AguiCallbackFptr proc);
void removeHandler();
AguiEvent();
};
我收到如下警告:
警告 57 警告 C4251: 'AguiEvent::events':类 'std::vector<_ty>' 需要有 客户端使用的dll接口 类'AguiEvent'
我试图找到如何正确执行此操作,但 MSDN 的文档非常仅限于 Windows,我需要它是跨平台的,以便它仅在 AGUI_CORE_DECLSPEC 实际定义时才执行 MS 特定的东西。
我应该怎么做才能消除这些警告?
谢谢
【问题讨论】: