Einzelnen Beitrag anzeigen

schöni

Registriert seit: 23. Jan 2005
Ort: Dresden
445 Beiträge
 
Delphi 7 Personal
 
#17

Re: Exe in Resource einfügen und im Programm lokal laden

  Alt 9. Mär 2009, 10:00
Zitat von taaktaak:
Moin, Moin.
Vorgehensweise ist mir verständlich.
Aber: Wozu soll das gut sein?
Ich sehe auf Anhieb eine Anwendung. Ich hatte mal den Ehrgeiz, den integrierten Debugger aus Lazarus zu extrahieren, um die Schnittstelle zum GDB zu gewinnen, da dieser letzlich augerufen wird. Das Problem war, das ich ein IDE Projekt mit Delphi realisiert hatte, das sich nicht ohne Änderungen auf Lazarus portieren ließ. So wollte ich den Debugger aus Lazarus haben, um ihn in meiner IDE verwenden zu können. Die Schnittstelle in eine Dll packen scheidet aus, da die Debuggerschnittstelle Strings übergibt und die Unit ShareMem bzw. FastMMxxx unbekannt sind. Ich brauche den Debugger also entweder als Stanalone Debugger, der per OLE in die IDE eingebettet werden kann oder die hier angestrebte Lösung, die Exe aus einer Ressource heraus zu starten.

Die betreffenden Units mit Delphi übersetzen scheidet wegen einiger wesentlicher Inkompatibilitäten syntaktischer Natur ebenfalls aus.

Zitat von taaktaak:
Um sicherzustellen, dass die Programme NUR durch die Delphi-Anwendung gestartet werden können?

Kann man die einzelnen Programme nicht mit Hilfe anderer Software wieder aus der Ressource extrahieren?
Schon möglich. Ich denke auch, das diese Vorgehensweise als Programmschutz nicht ausreichend ist.
Aber das hängt vom Wert der zu schützenden Software ab.

Die Vorgehensweise ist mir auch klar. Aber warum muss ich, wenn ich eine Ressource extrahieren will, diese speichern? Muss ich sie dann nicht vielmehr lesen?
Delphi-Quellcode:
function ExtractRes(ResType, ResName, ResNewName: string): Boolean;
var
  Res: TResourceStream;
begin
  Result := False;
  Res := TResourceStream.Create(Hinstance, Resname, PChar(ResType));
  try
    Res.SavetoFile(ResNewName);
    Result := True;
  finally
    Res.Free;
  end;
end;
Damit der Topf nicht explodiert, lässt man es ab und zu mal zischen.
  Mit Zitat antworten Zitat