代码之家  ›  专栏  ›  技术社区  ›  user189327

在将应用程序转换为使用DLL时使用lnk2019

  •  0
  • user189327  · 技术社区  · 15 年前

    (为了清楚起见重新编写)

    我有一个多项目的解决方案,我希望从使用.lib文件转换为.dll文件。我已经创建了我的declspec宏并将其应用于 每堂课 除了项目中创建final.exe的那些。然而,链接器对所有东西都很感兴趣。我已经设置为忽略有关导出模板化对象的错误。

    一个例子是:

    错误LNK2019:无法解析的外部 符号“uu declspec(dllimport)public: 无效的呼叫 rail::setnextrail(rail*类)“” (?setnextrail@rail@@qaexpav1@@z) 在函数“public:static”中引用 虚空 myutilities::CreateBezierRails(int,类 myvector*,class std::vector>&)”(?创建bezierrails@myutilities@@saxhpavmyvector@@aav?$vector@pavrail@v?$allocator@pavrail@@std@@std@@z)myutilities.obj

    我的declspec(dllimport)上未解析的外部符号?这似乎不对。它是由宏放置的,例如:

    #ifdef MYAI_EXPORT
    #define DECLSPECAI __declspec(dllexport)
    #else
    #define DECLSPECAI __declspec(dllimport)
    #endif
    

    基本上,什么给予?为什么我会收到这些错误,如何修复它们?感谢迄今为止所有试图提供帮助的人,但我仍然坚持这一点。

    4 回复  |  直到 15 年前
        1
  •  2
  •   Dolphin    15 年前

        2
  •  2
  •   MP24    15 年前

    __declspec(dllexport)
    

    __declspec(dllimport)
    

    // set this in preprocessor options for the DLL
    #ifdef MYDLL
    # define MYDLL_IMPORTEXPORT __declspec(dllexport)
    #else
    # define MYDLL_IMPORTEXPORT __declspec(dllimport)
    #endif
    class MYDLL_IMPORTEXPORT MyClass {};
    
        3
  •  0
  •   Goz    15 年前

        4
  •  0
  •   Dustin Getz    15 年前

    • __declspec