0

Delphi 2009 のプロジェクトでTPerlRegExp ( http://www.regular-expressions.info/delphi.htmlから、ページの途中) を使用したいと考えています。

PerlRegEx.pas と pcre.pas をプロジェクト グループに追加し、「PerlRegEx」を使用リストに追加しました。

コンパイルすると、次のエラーが発生します。

[DCC エラー] PerlRegEx.pas(305): E2003 宣言されていない識別子: 'pcre_dispose'

[DCC エラー] PerlRegEx.pas(533): E2003 宣言されていない識別子: 'pcre_dispose'

[DCC Fatal Error] test.dpr(21): F2063 Could not compile used unit '..\Shared\Classes\TPerlRegEx\PerlRegEx.pas'

「pcre_dispose」を使用して行をコメントアウトすると、正常にコンパイルされます。しかし、もちろん解放しないことでメモリリークを引き起こしたくありません...では、何が原因でしょうか?

アイデアを持っている人はいますか?

どうもありがとう!

4

1 に答える 1

1

インストールが機能するためのステップバイステップ(コメントで提供したダウンロードリンクから元の質問まで):

Zip ファイルをフォルダーに解凍します。E:\Code\PerlRegEx\XE2D2007 用の非 Unicode バージョンが既にインストールされているため、を使用しました。

で新しいコンソール プロジェクトを開始しFile->New->Other->Console Appます。

Project->Options->CompilerIDE のメイン メニューから使用し、上記のパスの場所を に追加しますSearch Path。次のコードを貼り付けて、コード エディター内のすべてを置き換えます。

program Project2;

{$APPTYPE CONSOLE}

{$R *.res}

uses
  System.SysUtils, PerlRegex;

var
  Regex: TPerlRegex;

begin
  try
    Regex := TPerlRegex.Create;
    try
      Regex.Subject := 'This is a test of TPerlRegex';
      Regex.RegEx := '\btest\b';
      if Regex.Match then
        WriteLn('Found match: ' + Regex.MatchedText)
      else
        WriteLn('Can''t be! No match found!');
      ReadLn;
    finally
      Regex.Free;
    end;
  except
    on E: Exception do
      Writeln(E.ClassName, ': ', E.Message);
  end;
end.

ご覧のとおり、TPerlRegexこのテスト ケースでは の機能の非常に複雑なテストを使用しました。:-)

上記の方法で問題なく動作し、自分のプロジェクトでまだ問題が発生している場合:

  1. 古いプロジェクトで古いバージョンの TPerlRegex への参照を確認します (検索パスまたはライブラリ パスの別のフォルダ、[ツール] -> [オプション] -> [環境] -> [ライブラリ パス] のエントリ)。

  2. PerlRegex の uses 句を確認します ([検索] -> [ファイル内の検索] を使用し、[プロジェクト内のすべてのファイル] を確認します)。

  3. 上記の正確な手順に従っていることを確認してください: PerlRegex のフォルダーを [プロジェクト] -> [コンパイラ] -> [検索パス] 設定に追加し、PerlRegex を使用するユニットの uses 句に追加します。私の例のコードで動作する場合あなたのマシンではありませんが、他のプロジェクトにはありません。問題はそこにあります

于 2012-09-11T13:07:59.123 に答える