Avatar billede rrm Nybegynder
06. juli 2002 - 00:36 Der er 8 kommentarer og
1 løsning

Resource dll problem

Når jeg forsøger at kalde loadstring og forsøger at hente en streng fra en resource dll, får jeg en exception. Jeg bruger loadliberay til at lode dll med og der kommer der ingen fejl.

Dll filen er oprettet ved skrive følgende i en tekstfil:
STRINGTABLE
BEGIN
101, "Dette er en test";
END;
Og så gemme det i formattet .rc og så complimere det (gav ingen fejl), herefter laver jeg en dll.

Hvad kan der være galt siden det ikke virker????
Avatar billede doc404 Novice
06. juli 2002 - 10:00 #1
Hvordan ser din LoadString kode ud?
Avatar billede rrm Nybegynder
06. juli 2002 - 10:58 #2
Den ser sådan ud:

Code := LoadString(handle, id, tmp, SizeOf(tmp));

Hvor tmp er pchar, handle og id er integer.
Avatar billede doc404 Novice
06. juli 2002 - 12:52 #3
Det er måske din Tmp der peger galt - i øvrigt vil Din SizeOf(Tmp) altid give 4 - du skal bruger størrelsen på den buffer tmp peger på
Avatar billede rrm Nybegynder
06. juli 2002 - 20:29 #4
Hvad vil du forslå at jeg skal gøre??? Hvis jeg ændre det til 255 får jeg også fejl!!!
Avatar billede doc404 Novice
06. juli 2002 - 20:41 #5
Jeg har brug følgende function:

function LoadResourceString(Id : integer) : string;
var
  n : integer;
  Buf : array[0..255] of char;
begin
  n := LoadString(hInstance,Id,Buf,SizeOf(Buf));
  if n > 0 then
    Result := StrPas(Buf)
  else
    Result := '';
end;
Avatar billede doc404 Novice
06. juli 2002 - 20:41 #6
du skal ændre hInstance til din DLL handle...
Avatar billede rrm Nybegynder
06. juli 2002 - 20:53 #7
Jubii, nu virker det...
Et spørgsmål til før du får dine velfortjente point.
Hvordan kan man finde ud af hvor stor bufferen skal, hvis man ikke kender strengens længde???
Avatar billede doc404 Novice
06. juli 2002 - 21:18 #8
Du er krævende :-)

Jeg gætter nu, da jeg altid bare laver bufferen stor nok til hvad jeg har puttet i resourcen... Jeg tror faktisk WIndows bare cutter strengen, hvis den er for lang. Men prøv. Hvis du får en fejl, så brug GetLastError til at få fejlkoden.
Avatar billede rrm Nybegynder
07. juli 2002 - 01:08 #9
ok, her er poitene...
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester