AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

DLL als *.res Datei

Ein Thema von sk0r · begonnen am 10. Mai 2007 · letzter Beitrag vom 9. Okt 2007
 
sk0r

Registriert seit: 1. Mai 2007
181 Beiträge
 
Delphi 7 Enterprise
 
#1

DLL als *.res Datei

  Alt 10. Mai 2007, 04:55
Guten Morgen.

Ich möchte gerne in mein Programm ein *.res Ressourcenscript einbauen,
welche eine Dll sein soll. Diese soll vom Programm dann erstellt werden.

Leider bekomme ich beim schreiben immer den Fehler 1784 ERROR_INVALID_USER_BUFFER.
Keine Ahnung wo der Fehler liegen könnte. Mein Code:

Ressourcenscript
Code:
dllname RT_RCDATA "C:\MeineDll"
Programmcode:
Delphi-Quellcode:
function GetResourceData(rsName, rsType: PAnsiChar): Pointer;stdcall;
var
  fRes, lRes, lResSize: Cardinal;
  gResData: Pointer;
begin
   fRes := FindResource(GetModuleHandle(nil), rsName, rsType);
   if fRes <> 0 then
   begin
    lRes := LoadResource(GetModuleHandle(nil), fRes);
    if lRes <> 0 then
    begin
      gResData := LockResource(lRes);
     result := gResData;
    end;
   end;
end;

function GetResourceSize(srsName, srsType: PAnsiChar): Cardinal;stdcall;
var
   FindRes, sizeRes: Cardinal;
begin
   FindRes := FindResource(GetModuleHandle(nil), srsName, srsType);
   if FindRes <> 0 then
   begin
      sizeRes := SizeOfResource(GetModuleHandle(nil), FindRes);
      if sizeRes <> 0 then
      begin
         result := sizeRes;
      end;
   end;
end;

procedure TForm1.FormCreate(Sender: TObject);
var
  hcrtDll: Cardinal;
  dwBytesWritten: Cardinal;
  pDllRes: Pointer;
begin
  pDllRes := GetResourceData('dllname', RT_RCDATA);
  hcrtDll := CreateFile('MeineDll.dll', GENERIC_WRITE, FILE_SHARE_WRITE, nil, CREATE_ALWAYS, FILE_ATTRIBUTE_HIDDEN, 0);
  if hcrtDLl <> INVALID_HANDLE_VALUE then
  begin
     WriteFile(hcrtDll, pDllRes^, GetResourceSize('dllname', RT_RCDATA), dwBytesWritten, 0);
    showmessage(inttostr(GetLastError));
     Closehandle(hcrtDll);
  end;

end;
Weiß jemand woran der Fehler liegt? Mit Bildern klappt alles Perfekt..

MfG
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:08 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz