Delphi 在DLL中作为参数传递类

Delphi 在DLL中作为参数传递类,delphi,Delphi,关于DLL,建议您可以在Delphi/CPPB DLL中将类作为参数传递: 如果需要从DLL传递TStrings对象,则使用is或as运算符,需要创建一个包而不是DLL 我读作: “如果未对TStrings对象使用is或as运算符,则可以从DLL传递TStrings对象” 说“永远不要通过考试”(我同意他的说法) 那么,文档是草率的还是我对它的解释是圣经式的(尽管我喜欢)?文档没有列出在非包模块之间传递类实例时出现的每个问题。还有很多。鲁迪的建议很好。是的,文档很草率。它只关注RTTI,但还有其

关于DLL,建议您可以在Delphi/CPPB DLL中将类作为参数传递:

如果需要从DLL传递TStrings对象,则使用is或as运算符,需要创建一个包而不是DLL

我读作:
“如果未对TStrings对象使用is或as运算符,则可以从DLL传递TStrings对象”

说“永远不要通过考试”(我同意他的说法)


那么,文档是草率的还是我对它的解释是圣经式的(尽管我喜欢)?

文档没有列出在非包模块之间传递类实例时出现的每个问题。还有很多。鲁迪的建议很好。是的,文档很草率。它只关注RTTI,但还有其他问题(我认为)与RTTI无关,或者至少没有那么明显。文档的编写方式表明,有安全的方法可以做到这一点,但实际上没有。它要么是一个包,要么坚持使用原始的、非Delphi特定的类型。我可能有点迂腐,但我认为值得一提的是,将类实例传递给DLL是没有问题的,只要DLL不使用它,就可以将其传递回主应用程序,例如,文档并没有列出在非包模块之间传递类实例时出现的每个问题。还有很多。鲁迪的建议很好。是的,文档很草率。它只关注RTTI,但还有其他问题(我认为)与RTTI无关,或者至少没有那么明显。文档的编写方式表明,有安全的方法可以做到这一点,但实际上没有。它要么是一个包,要么坚持使用原始的、非Delphi特定的类型。我可能有点迂腐,但我认为值得一提的是,将类实例传递给DLL是没有问题的,只要DLL除了通过回调函数将其传递回主应用程序之外不使用它。