예를 들어 here, here 및 here의 예제를 기반으로 SVN 개정 정보를 프로젝트에 포함하려고합니다. svn 정보 호출 결과는 rev.txt
(일반 ansi 파일)에 저장됩니다. 내 revinfo.rc
은 다음과 같습니다Delphi 2010 : 자원을 찾을 수 없습니다 - EResNotFound
REV_TEXT TEXT rev.txt
내 프로젝트는 다음과 같습니다
이 프로젝트는, 즉, 리소스 파일 자체가 컴파일러에 의해 위치 (또는 perphaps입니다 때문에 컴파일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);
이 실행될 때 REV_TEXT 리소스를 찾을 수 없다는 불만을 토로 EResNotFound 예외가 발생합니다. rev.txt
텍스트 파일의 내용을 포함하여 리소스 파일이 만족스럽게 컴파일되었는지 확인할 수 있습니다. 내 문제를 재현 할 수있는 사람이 있습니까?
BTW : 나는 또한 TResourceStream 생성자의 색인 된 버전을 사용하려고 시도했지만 사용하려는 색인을 알지 못합니다 (0, 1 및 2를 사용하지 않았 음).
정말 고맙습니다. :)
감사합니다 많이! 매력처럼 작동합니다. (비록 텍스트가 중국어로 나오지만 ... 오, 글쎄, 적어도 한 걸음 더 나아.) :) – conciliator
그것을 알아 냈어. 문자열 유형은 RRUZ 응답 (파일은 언급 한대로 Ansi 인코딩 파일 임)에 표시된 AnsiString이어야합니다. 원래 질문에서 MyStr을 변경하여 사람들을 잘못 이끌지 않도록했습니다. – conciliator