gpt4 book ai didi

delphi - delphi升级后调用外部dll

转载 作者:行者123 更新时间:2023-12-03 19:50:36 25 4
gpt4 key购买 nike

我已将我的 Delphi 2007 应用程序升级到 Delphi Seattle。在 Delphi 2007 中,我有一个从我的 Delphi 应用程序调用的 Fortran DLL。升级后出现错误“未找到程序端点”。请注意,Fortran DLL 没有变化,并且 dll 与应用程序 exe 位于同一路径中

Delphi的调用代码是

type
TArrayOfTypeNos= array [1..1000] of Integer;
....
procedure CallFunc(
Idx : Integer;
var Nos : Integer;
var ProductTypes : TArrayOfTypeNos
); stdcall; external 'MyFortranDLL.dll' name '_ThisIsFuncNameinFortran';

有人可以给我一些想法,看看可能出了什么问题吗?

我得到的错误是:

The procedure entry point _ThisIsFuncNameinFortran could not be located in dynamic link library

最佳答案

Delphi 2007 和 Delphi 10 Seattle 之间没有任何变化,以任何方式影响问题中显示的功能。

在 Unicode 之前的 Delphi 和 Unicode Delphi 之间移动时出现的常见问题与字符和字符串类型的处理差异有关。所以,Char以前是 AnsiChar 的别名, 但现在是 WideChar 的别名. PChar 也是如此, string等等。但这里不是这样。您使用的类型在 Delphi 2 以上的所有 Delphi 版本中具有相同的含义。

错误信息是:

The procedure entry point _ThisIsFuncNameinFortran could not be located in dynamic link library.



只有一种方法可以解释该错误消息。 DLL 已被定位,但它实际上并没有导出具有该名称的函数。检查实际加载的 DLL 是否确实是您要加载的那个。 Dependency Walker 或类似工具可能会有所帮助。

关于delphi - delphi升级后调用外部dll,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33097379/

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