Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Delphi 德尔福,can';t在外部.pas文件中不使用函数_Delphi_File_Function_External - Fatal编程技术网

Delphi 德尔福,can';t在外部.pas文件中不使用函数

Delphi 德尔福,can';t在外部.pas文件中不使用函数,delphi,file,function,external,Delphi,File,Function,External,我正在使用外部.pas文件中的函数。我可以使用一些函数,但不能使用其他函数。据我所知,函数是以同样的方式声明的,我想发布一些文件,但不知道如何发布大量代码。该文件未正确链接和/或未包含在项目搜索路径中,和/或被其他具有相同函数名和/或奇数函数的文件隐藏在$IFDEF子句中 检查拼写、uses子句、工作函数位置(按住Ctrl键并单击代码中的函数名)、$IFDEF子句 该文件在Delphi环境选项中未正确链接 文件可能位于项目搜索路径之外。因此它没有链接 项目(DPR文件)中键入的文件路径错误。例如

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

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

检查拼写、uses子句、工作函数位置(按住Ctrl键并单击代码中的函数名)、
$IFDEF
子句

  • 该文件在Delphi环境选项中未正确链接
  • 文件可能位于项目搜索路径之外。因此它没有链接
  • 项目(DPR文件)中键入的文件路径错误。例如,您使用文件的旧版本引用旧路径
  • 在每种情况下,如果名称合适,可以从其他文件中获取某些函数。例如,函数GlunProject可以从OpenGL.pas和dglOpenGL.pas中获取,如果第一个单元没有正确链接,我将遇到与您现在遇到的问题相同的问题-一些函数工作,一些函数缺失。在任何一种情况下,您都应该编译您的项目,按住Ctrl键并单击一个工作函数名,然后查看它带您到哪里,检查文件版本位置

  • 这些函数可以在$IFDEF子句中。这些是编译器指令,若不满足某些条件,则编译器将看不到该子句中的代码。例如,{$IFDEF MSWindows}Func{$ENDIF}在Linux上无法访问

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

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

    这些不同的部分介绍了Delphi如何在单元级别实现公共和私有可见性


    通常,在编写良好的单元中,将函数设置为单元私有是有原因的。但是,如果您认为覆盖作者的决定是合理的,那么您需要在接口部分重新声明该函数。这将使使用第三方设备的代码可用。

    您可以始终将.pas文件放在某个文件共享器上,并提供指向该文件的链接。请发布函数声明,无论它是类的一部分,检查它是否不是类的私有函数。.pastebin(您选择的任何函数)对此都可以。作为旁白,我建议永远不要使用搜索路径。直接在项目中或通过软件包包含所需的任何文件。搜索路径使您无法控制和了解程序中的单元。searchpath中有一个功能较少的旧版本dcu。