C++ 如何使用DigiDoc++;使用Delphi的图书馆?
我想在Delphi中使用它。有C++ 如何使用DigiDoc++;使用Delphi的图书馆?,c++,delphi,delphi-xe2,C++,Delphi,Delphi Xe2,我想在Delphi中使用它。有demo exe。我使用Dependency walker打开了它,我看到它使用了digidocpp.dll,我看到void digidoc::initialize(class std::basic_string const&) 在Delphi中如何调用它?< /P> < P>你所引用的函数使用STL类,因此只能从C++代码中访问。您需要编写一个C++适配器DLL,并从Delphi中下载该文件。适配器在一个方面消耗C++接口,并提供了另一个可访问的接口。例如,您可能
demo exe
。我使用Dependency walker打开了它,我看到它使用了digidocpp.dll,我看到void digidoc::initialize(class std::basic_string const&)
在Delphi中如何调用它?< /P> < P>你所引用的函数使用STL类,因此只能从C++代码中访问。您需要编写一个C++适配器DLL,并从Delphi中下载该文件。适配器在一个方面消耗C++接口,并提供了另一个可访问的接口。例如,您可能会公开COM兼容的接口
您还需要C++库的文档和SDK。这种代理库应该使用与原始库相同的STL版本。否则,它很可能在第一次std::string销毁时失败。大概是在图书馆的文档中所说的。另外,看一下我的关于使用Delphi中C++类的文章。包装器将不得不隐藏STL类,但除此之外,它与。您可以使用COM包装器方法或扁平化方法。显然,他们曾经分发此库的COM和C版本。即使这些文件被“弃用”,如果它们仍然是功能性的,我会选择它们来围绕自己的C++版本编写自己的COM包装器,或者在它们的C++ API周围创建自己的过程(C类)包装器,这大概使用C++ STD::字符串类型。