我正在尝试在 C ++ builder xe 中开发一个dll,我需要解析一个XML file
,为此我使用解析器 C ++ builder xe ,它生成一个允许我操作xml file
的代码。
问题是我在生成的代码导致编译时遇到错误。
这是生成的代码:
_
di_IXMLDevlinkAbstractionLayer __fastcall GetDevlinkAbstractionLayer(_di_IXMLDocument Doc)
{
return (_di_IXMLDevlinkAbstractionLayer) Doc->GetDocBinding("DevlinkAbstractionLayer", __classid(TXMLDevlinkAbstractionLayer), TargetNamespace);
};
_di_IXMLDevlinkAbstractionLayer __fastcall GetDevlinkAbstractionLayer(TXMLDocument *Doc)
{
_di_IXMLDocument DocIntf;
Doc->GetInterface(DocIntf);
return GetDevlinkAbstractionLayer(DocIntf);
};
_di_IXMLDevlinkAbstractionLayer __fastcall LoadDevlinkAbstractionLayer(const UnicodeString& FileName)
{
return (_di_IXMLDevlinkAbstractionLayer) LoadXMLDocument(FileName)->GetDocBinding("DevlinkAbstractionLayer", __classid(TXMLDevlinkAbstractionLayer), TargetNamespace);
};
我得到的错误是:
[ILINK32 Error] Error: Unresolved external '__fastcall System::TObject::GetInterface(_GUID&, void *)' referenced from D:\DOCUMENTS AND SETTINGS\SESA269906\DESKTOP\DEV\DEVLINKABSTRACTION\DEBUG\WIN32\COOLINGCONFIGDALDLL.OBJ
[ILINK32 Error] Error: Unresolved external '__fastcall Strhlpr::UnicodeFree(System::UnicodeString&)' referenced from C:\PROGRAM FILES\EMBARCADERO\RAD STUDIO\8.0\LIB\WIN32\DEBUG\VCLE.LIB|ustring
[ILINK32 Error] Error: Unresolved external '__fastcall Strhlpr::WideFree(System::WideString&)' referenced from C:\PROGRAM FILES\EMBARCADERO\RAD STUDIO\8.0\LIB\WIN32\DEBUG\VCLE.LIB|wstring
[ILINK32 Error] Error: Unresolved external '__fastcall Strhlpr::WideAssign(System::WideString&, System::WideString&)' referenced from C:\PROGRAM FILES\EMBARCADERO\RAD STUDIO\8.0\LIB\WIN32\DEBUG\VCLE.LIB|wstring
我认为错误是其中一个生成的文件中的include会导致问题。 任何想法?
答案 0 :(得分:1)
我通过在项目选项中取消选中链接器选项“Dynamic RTL”和“使用运行时包链接”来解决问题。在包选项中。 我不知道这与初始问题之间的关系是什么......