【发布时间】:2010-12-06 17:12:52
【问题描述】:
(为了清楚起见重新编写)
我有一个多项目解决方案,我希望将其从使用 .lib 文件转换为 .DLL 文件。我创建了我的 __declspec 宏并将其应用于每个类,但项目中创建最终 .exe 的那些除外。然而,链接器几乎对所有东西都适用。我已设置为忽略有关导出模板对象的错误。
一个例子是这样的:
错误 LNK2019:未解决的外部 符号“__declspec(dllimport)公共: 无效 __thiscall Rail::SetNextRail(类 Rail *)" (__imp_?SetNextRail@Rail@@QAEXPAV1@@Z) 在函数“公共:静态”中引用 无效__cdecl MyUtilities::CreateBezierRails(int,class MyVector *,class std::vector > &)" (?CreateBezierRails@MyUtilities@@SAXHPAVMyVector@@AAV?$vector@PAVRail@@V?$allocator@PAVRail@@@std@@@std@@@Z) .obj
我的 __declspec(dllimport) 上的外部符号无法解析?这似乎不对。它被一个宏放置,例如:
#ifdef MYAI_EXPORT
#define DECLSPECAI __declspec(dllexport)
#else
#define DECLSPECAI __declspec(dllimport)
#endif
基本上,什么给了?为什么我会收到这些错误,我该如何解决?感谢到目前为止所有试图提供帮助的人,但我仍然坚持这一点。
【问题讨论】:
标签: c++ dll visual-studio-2005 linker