Einzelnen Beitrag anzeigen

Benutzerbild von TheGame1492
TheGame1492

Registriert seit: 31. Jul 2004
Ort: Berlin
84 Beiträge
 
Delphi XE2 Professional
 
#1

string aus resource auslesen schlägt fehl...

  Alt 12. Aug 2005, 13:23
moin


hab wieder mal ein updateresource problem

ich schreibe mit folgendem code 2 strings in eine exe....

Delphi-Quellcode:

test1 := 'blabla';
test2 := 'huhu';

pResourceID := MakeIntResource('test1');
            if not UpdateResource(hInst, RT_STRING, pResourceID, MAKELANGID(LANG_NEUTRAL,SUBLANG_NEUTRAL), PWideChar(test1), Length(test1)) then
              MessageDlg(SysErrorMessage(GetLastError), mtError, [mbOk], 0);

  
pResourceID := MakeIntResource('test2');
            if not UpdateResource(hInst, RT_STRING, pResourceID,MAKELANGID(LANG_NEUTRAL,SUBLANG_NEUTRAL) , PWideChar(test2), Length(test2)) then
              MessageDlg(SysErrorMessage(GetLastError), mtError, [mbOk], 0);
... dann will ich sie wieder auslesen mit folgender function....

Delphi-Quellcode:

function TForm1.ReadResString( res: string ): string;
var
  tmp: pchar;
  HI, HG: Cardinal;
  Resource: Pointer;
  pResourceID: PChar;
begin
  pResourceID := MakeIntResource(res);
  HI := FindResource(hInstance, pResourceID, RT_STRING);
  if HI <> 0 then
  begin
    HG := LoadResource(hInstance, HI);
    if HG <> 0 then
    begin
      Resource := LockResource( HG );
      if Assigned(Resource) then
      begin
        tmp := Resource;
        result := string(tmp);
      end;
    end;
  end
  else
  begin
    ShowMessage(SysErrorMessage(GetLastError));
    Result := 'ERROR';
  end;
end;plus
wenn ich mir nun string nr.1(test1) anschau is am ende immer ein __ dran gehängt: blabla_

woran liegt das?

wenn ich mir dann string nr.2(test2) wird immer das wort PAD rangehangen plus string 1

also so: huhuPADblabla_

was hab ich da falsch gemacht?
  Mit Zitat antworten Zitat