我从 xerces.appache 镜像下载了 Xerces-c 源代码。我想为 32 位和 64 位创建一个可与 C++Builder 10.0 Seattle 一起使用的 DLL。
构建说明和下载存档提供了一个 Visual C++ 解决方案,我可以将其与 VS Studio Express 2015 一起使用,或者使用为 Borland C++ 设计的 make 文件进行构建的说明。十年前,Borland 放弃了 C++ 工具,所以甚至没有尝试 make 文件,我认为它们无法与我的 Embarcadero 10.0 Seattle 编译器一起使用。因此,我使用 VS Studio Express 2015 构建了 xerces-all,一切似乎都可以正常工作。(DLL 构建没有错误,示例构建并似乎运行。)
我一直在尝试对 VS Studio 解决方案进行更改(将调用约定从 更改__cdecl
为__stdcall
),但这只会使示例无法构建。
根据 Remy Lebeau 的建议和我找到的这篇文章(Using Visual C++ DLLs with C++Builder),我尝试使用 Embarcadero 实用程序 TDUMP、IMPDEF 和 IMPLIB 从构建的 DLL 中提取导出名称。这些产生如下所示的输出:
EXPORT ord:1763='?Initialize@XMLPlatformUtils@xercesc_3_1@@SAXKKKQBD0QAVPanicHandler@2@QAVMemoryManager@2@@Z'
我在这个线程中发布了我试图构建的应用程序代码作为一个简单的测试:
C++ Builder 测试应用程序中未解决的外部“xercesc_3_1::XMLPlatformUtils::Initialize”
我迷惑得难以置信。如何获得可以与我的工具一起使用的 DLL或LIB?