gpt4 book ai didi

delphi - 如何在TCL中使用Delphi编译的DLL?

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

我使用 Delphi 和 TCL 一段时间了,出于两个不同的目的。现在,我已经在 Delphi 中实现了一些功能。我想重用 TCL 实用程序中的功能。 TCL 程序不是一个独立的程序,它用于在 CAD 工具中编写脚本。

这里讨论的功能与特定的XML解析有关,我发现TCL有读/写XML文件的包。但是,我在想是否可以按原样重用整个逻辑。

我在 Google 上搜索了该主题,但可以找到与为 TCL 创建 TCL 包装器相关的大部分帮助,但这是针对 C/C++ 的。请指导TCL代码中调用导出函数。

最佳答案

关于二进制互操作,使用什么语言创建 DLL 并不重要。为了便于论证,让我们考虑一个在 C++ 中声明如下的函数:

int __stdcall foo(double bar);

并假设该函数是从 DLL 导出的。现在考虑这个 Delphi 函数:

function foo(bar: Double): Integer; stdcall;

再一次,假设它是从 DLL 导出的。

现在,这两个 DLL 彼此无法区分,至少在它们的接口(interface)上是这样。如果您可以从 TCL 调用 C++ DLL,那么您就可以调用 Delphi DLL。

所有这一切的底线是,既然您已经知道如何从 TCL 调用 C++ DLL,那么您可以使用完全相同的机制来调用 Delphi DLL。你的问题实际上是基于一个错误的前提,即 C++ DLL 需要与 Delphi DLL 不同的处理方式。

您可能需要的唯一额外信息是了解 C++ 和 Delphi 互操作之间的映射,为此我建议您参阅 Rudy Velthuis 的优秀文章:http://rvelthuis.de/articles/articles-convert.html

关于delphi - 如何在TCL中使用Delphi编译的DLL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20743873/

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