zoukankan      html  css  js  c++  java
  • Delphi中使用@取函数地址的问题

    例如以下代码:
    unit Unit1;
    interface
    uses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,Dialogs;
    type
      TForm1 = class(TForm)
        procedure one();
        function two(x,y:integer):integer;
      private
        { Private declarations }
      public
        { Public declarations }
      end;
    var
      Form1: TForm1;
    implementation
    {$R *.dfm}
    procedure TForm1.one();
    var
      p : pointer;
    begin
      p:=@two;
    end;
    function TForm1.two(x,y:integer):integer;
    begin
      Result:=x+y;
    end;
    end.


    在Delphi5中,没有任何问题,到了delphi7、2007、2009中就会报错:需要变量(Delphi6没试)
    原因是新版本中要求返回函数地址的函数必须是全局函数,所以程序要改成这样:
    ................................
    var
      Form1: TForm1;
      function two(x,y:integer):integer;
    ................................
    function two(x,y:integer):integer; ......

     

     

     

  • 相关阅读:
    8.8总结
    8.4总结
    8.3总结
    题目分享H 二代目
    题目分享G 二代目
    题目分享E 二代目
    题目分享F 二代目
    题目分享D 二代目
    题目分享C 二代目
    题目分享Y
  • 原文地址:https://www.cnblogs.com/huhu0013/p/1768287.html
Copyright © 2011-2022 走看看