0

Delphi 5 アプリケーションを Delphi XE3 に移行しています。私はXE3にまったく慣れていません。

アプリケーションのコンパイル中に、「宣言されていない識別子 Interace_Info」というエラーが発生します。

コードは以下のようなものです:

abc株式会社:

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

コメントしたように、あなたのコードは実際のコードであってはなりません。

これを投稿します。これは、DelphiXE3で問題なくコンパイルしたものです。

ファイル: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 に答える