最近在x64手动配置ObjectARX开发环境时,碰见了如下的错误。
在win32下没有这样的错误。
1>Arx1.obj : error LNK2019: 无法解析的外部符号 "__declspec(dllimport) public: bool __cdecl AcRxClass::isDerivedFrom(class AcRxClass const *)const " (__imp_?isDerivedFrom@AcRxClass@@QEBA_NPEBV1@@Z),该符号在函数 "public: bool __cdecl AcRxObject::isKindOf(class AcRxClass const *)const " (?isKindOf@AcRxObject@@QEBA_NPEBVAcRxClass@@@Z) 中被引用
1>Arx1.obj : error LNK2019: 无法解析的外部符号 "public: static class AcRxClass * __cdecl AcEdCommandStack::desc(void)" (?desc@AcEdCommandStack@@SAPEAVAcRxClass@@XZ),该符号在函数 "public: static class AcEdCommandStack * __cdecl AcEdCommandStack::cast(class AcRxObject const *)" (?cast@AcEdCommandStack@@SAPEAV1@PEBVAcRxObject@@@Z) 中被引用
1>Arx1.obj : error LNK2019: 无法解析的外部符号 __imp_acrxSysRegistry,该符号在函数 "void __cdecl UnLoadApp(void)" (?UnLoadApp@@YAXXZ) 中被引用
于是在依赖项中添加了acedapi.lib,重新引发了这样的错误。
1>LINK : fatal error LNK1181: 无法打开输入文件“acedapi.lib”
经过查找objectArx2014里没有这个lib,需要用accore.lib,ac1st19.lib替换。
至此,问题解决。