gpt4 book ai didi

delphi - 要使使用Delphi创建的DLL在其他Delphi版本中良好运行,应遵循哪些原则?

转载 作者:行者123 更新时间:2023-12-03 15:05:56 25 4
gpt4 key购买 nike

this question之后,我需要知道应该遵循什么原则才能使dll中的类封装兼容其他版本的Delphi。我使用 RAD2010 中的泛型功能创建了一个类,并创建了一个 dll,其中包含一个返回其实例的函数。当我尝试使用 BDS2006 或 Delphi 6 来使用 dll 时,DLL 没有按预期工作。但如果我在其他电脑上使用RAD2010,就没有问题。是否是由于使用了以前的Delphi版本中不可用的功能(stack<>东西?)引起的?对于字符串问题,我已经遵循库文件中的注释指南,将 ShareMem 放入库的第一个使用子句和我的项目中。我已将 borlndmm.dll 从 RAD2010 复制到我使用 BDS2006 尝试 DLL 的同一文件夹中。它没有崩溃,但没有达到预期的效果。函数在 RAD2010 环境中运行良好时返回空字符串。

我再次有一个问题:为了使dll中的类封装与其他版本的Delphi兼容,应该遵循什么原则?先感谢您。 (对于不使用OOP时将函数封装在dll中,我没有为其他版本的Delphi发布)。

最佳答案

D2009 中字符串的定义发生了变化。如果您想让字符串通信安全,请使用 PAnsiChar 或 WideString。

通过 DLL 进行通信的基本规则是不使用任何特定于 Delphi 的内容,因此没有 Delphi 字符串,也没有 TObject 后代。不过,接口(interface)、记录和 COM 类型工作正常。

关于delphi - 要使使用Delphi创建的DLL在其他Delphi版本中良好运行,应遵循哪些原则?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1746163/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com