На основе примеров, например, здесь , здесь и здесь , я пытаюсь включить информацию о ревизии SVN в проект. Результат информационного вызова svn хранится в rev.txt
(это простой ANSI-файл). Мой revinfo.rc
выглядит так:
REV_TEXT TEXT rev.txt
Мой проект выглядит так:
unit rev;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm2 = class(TForm)
Memo1: TMemo;
Button1: TButton;
procedure Button1Click(Sender: TObject);
end;
var
Form2: TForm2;
implementation
{$R *.dfm}
{$R revinfo.res}
procedure TForm2.Button1Click(Sender: TObject);
var
RS : TResourceStream;
MyStr : AnsiString;
begin
RS := TResourceStream.Create(hInstance, 'REV_TEXT', RT_RCDATA);
SetLength(MyStr, RS.Size);
RS.Read(MyStr[1], RS.Size);
RS.Free;
Memo1.Text := MyStr;
end;
end.
Проект компилируется, другими словами, сам файл ресурсов находится компилятором (или, возможно, он является компоновщиком?). Тем не мение; когда выполняется оператор TResourceStream.Create(hInstance, 'REV_TEXT', RT_RCDATA);
, я получаю исключение EResNotFound, жалуясь, что не может найти ресурс REV_TEXT. Я могу подтвердить, что файл ресурсов скомпилирован удовлетворительно и содержит текстовый файл rev.txt
. Есть ли кто-нибудь, кто может воспроизвести мои проблемы?
Кстати: я также пытался использовать индексированную версию TResourceStream-конструктора, но я не знаю, какой индекс использовать (пробовал 0, 1 и 2 безрезультатно).
Я очень ценю вашу помощь! :)