我正在使用外部.pas文件中的函数。我可以使用其中的一些功能,但不能使用其他功能。据我所知,函数是以相同的方式声明的,我想发布一些文件,但不知道如何发布大量代码。
您可以使用在接口部分中声明的函数,即implementation
部分之前的代码部分。
您可能正在尝试调用仅在实现部分中定义的函数,即出现在implementation
关键字之后的代码。
这些不同的部分是Delphi如何在单元级别实现公共和私有可见性。
通常,在编写良好的单元中,将函数设为单元私有是有原因的。但是,如果您认为覆盖作者的决定是合理的,那么您需要在接口部分重新声明该函数。这将使其可用于使用第三方单元的代码。
该文件未正确链接和/或未包含在项目搜索路径中,和/或被其他具有相同函数名和/或$IFDEF
子句中的奇数函数的文件遮蔽。
检查拼写、uses子句、工作函数位置(Ctrl+单击代码中的函数名称)、$IFDEF
子句。
- 该文件在Delphi环境选项中未正确链接
- 该文件可能位于项目搜索路径之外。因此,它没有关联
- 文件路径在项目中键入错误(DPR文件)。例如,您引用的是具有旧版本文件的旧路径
在每种情况下,如果名称合适,可以从其他文件中获取一些函数。例如,函数gluUnproject可以从OpenGL.pas和dglOpenGL.pa中获取,如果第一个单元没有正确链接,我会遇到和你现在一样的问题——有些函数可以工作,有些函数丢失。在任何情况下,您都应该编译您的项目,Ctrl+单击一个工作函数名称,看看它会给您带来什么,检查文件版本位置。
- 这些函数可能在$IFDEF子句中。这些是编译器指令,如果不满足特定条件,编译器将看不到此类子句中的代码。例如,{$IFDEF MSWindows}Func{$ENDIF}在Linux上无法访问