0

我正在将我的 Delphi 5 应用程序迁移到 Delphi XE3。我对 XE3 完全陌生。

在编译应用程序时,我收到错误“未声明的标识符 Interace_Info”。

代码如下:

abc.inc:

Interace_Info = packed record
iflag: ulong;
end;

.

Unit unit2
type
ulong: DWORD;
{$include abc.inc}
end.

.

Unit unit1
uses unit2;
type
Tlocal= array[0..10] of Interace_Info;

其中 Interace_Info 在“abc.inc”文件中声明。

我无法通过按 Ctrl+鼠标左键打开使用部分中提到的任何文件。我收到错误“无法找到文件'winapi.unit2.pas'”。

解决方案是什么?

谢谢

4

1 回答 1

1

正如所评论的,您的代码不能是真正的代码。

我正在发布这个,我现在用 Delphi XE3 编译没有任何问题。

文件:abc.inc

type
  Interace_Info = packed record
    iflag: ulong;
  end;

文件:Unit2.pas

unit Unit2;

interface
uses winapi.Windows;

{$include abc.inc}

implementation

end.

文件:Unit1.pas

unit Unit1;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes,  Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation
uses Unit2;

type
  TLocal = array[0..10] of Interace_Info;

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
  ALocal: TLocal;
begin
  ALocal[0].iflag := 0;
  ShowMessage(IntToStr(ALocal[0].iflag));
end;

end.

它编译和运行没有任何问题。

于 2012-11-15T22:14:14.870 回答