Delphi,不能在外部.pas文件中使用函数

时间:2011-06-21 06:38:40

标签: delphi file function external

我正在使用外部.pas文件中的函数。我可以使用一些功能,但不能使用其他功能。据我所知,函数声明方式相同,我想发布一些文件,但不知道发布大量代码。

2 个答案:

答案 0 :(得分:5)

文件未正确链接和/或未包含在项目搜索路径中和/或由具有相同函数名称和/或奇数函数的其他文件隐藏在$IFDEF子句中。

检查拼写,使用子句,工作函数位置( Ctrl +单击代码中的函数名称),$IFDEF子句。

  1. 文件未在Delphi环境选项中正确链接
  2. 该文件可能位于项目搜索路径之外。因此它没有联系。
  3. 在项目(DPR文件)中错误地键入文件路径。例如。你指的是旧文件的旧版本。
  4. 在每种情况下,如果名称适合,可以从其他文件中获取某些功能。例如。函数gluUnproject可以从OpenGL.pas和dglOpenGL.pas获取,如果第一个单元没有正确链接我会得到你现在遇到的相同问题 - 一些功能有效,一些功能缺失。在任何情况下,您应该编译项目, Ctrl +单击工作函数名称并查看它带给您的位置,检查文件版本位置。

    1. 这些功能可以在$ IFDEF子句中。这些是编译器指令,如果不满足某些条件,则此子句中的代码对编译器是不可见的。例如。 {$ IFDEF MSWindows}在Linux上无法访问Func {$ ENDIF}。

答案 1 :(得分:5)

您可以使用接口部分中声明的函数,即implementation部分之前的代码部分。

您可能正在尝试调用仅在实现部分中定义的函数,即在implementation关键字之后显示的代码。

这些不同的部分是Delphi如何在单元级实现公共和私人可见性。

通常,在写得很好的单位中,有一个理由将功能设为私有。但是如果你认为覆盖作者的决定是合理的,那么你需要重新声明接口部分中的函数。这将使您的代码可以使用第三方单元。