AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Resourcendatei zur Laufzeit erzeugen und an eine bestehende
Thema durchsuchen
Ansicht
Themen-Optionen

Resourcendatei zur Laufzeit erzeugen und an eine bestehende

Ein Thema von napsterxx · begonnen am 6. Okt 2007 · letzter Beitrag vom 7. Okt 2007
Antwort Antwort
Seite 1 von 4  1 23     Letzte »    
napsterxx

Registriert seit: 18. Mär 2007
Ort: Borland
556 Beiträge
 
Delphi 7 Enterprise
 
#1

Resourcendatei zur Laufzeit erzeugen und an eine bestehende

  Alt 6. Okt 2007, 15:35
Ich, ich möchte mit klick auf einen Button, eine beliebige Datei als Resourcendatei an eine bestehende EXE Datei hängen, sodass wenn diese EXE Datei ausgeführt wird die Resourcendatei wo abgespeichert werden kann. Ich weiß wie ich Resourcen abspeicher, bloß nicht wie ich eine Datei zur Laufzeit als Resourcendatei an eine andere hänge. Pls Help
Du derefernzierst p2 einmal und weißt die Adresse von i zu. Das heißt p2 (also der Zeiger auf einen Zeiger) zeigt auf den Zeiger p1 welchen du so auf i zeigen lässt.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.542 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Resourcendatei zur Laufzeit erzeugen und an eine bestehe

  Alt 6. Okt 2007, 16:20
Das Hauptproblem sehe ich schon einmal darin, dass Du einen Ressourcen-Compiler bräuchtest.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
napsterxx

Registriert seit: 18. Mär 2007
Ort: Borland
556 Beiträge
 
Delphi 7 Enterprise
 
#3

Re: Resourcendatei zur Laufzeit erzeugen und an eine bestehe

  Alt 6. Okt 2007, 16:22
Delphi-Quellcode:
h := BeginUpdateResource(exedatei,TRUE);
UpdateResource(h,RT_RCDATA, 'text', 'RCDATA','C:\textfile.txt',340);
EndUpdateResource(h,FALSE);
Angeblich soll das funktionieren, aber ich bekomme ständig ne fehlermeldung die typen seien falsch ...
Du derefernzierst p2 einmal und weißt die Adresse von i zu. Das heißt p2 (also der Zeiger auf einen Zeiger) zeigt auf den Zeiger p1 welchen du so auf i zeigen lässt.
  Mit Zitat antworten Zitat
napsterxx

Registriert seit: 18. Mär 2007
Ort: Borland
556 Beiträge
 
Delphi 7 Enterprise
 
#4

Re: Resourcendatei zur Laufzeit erzeugen und an eine bestehe

  Alt 6. Okt 2007, 18:04
*möp* wo bleiben die Leute mit den Antworten? *g*
Du derefernzierst p2 einmal und weißt die Adresse von i zu. Das heißt p2 (also der Zeiger auf einen Zeiger) zeigt auf den Zeiger p1 welchen du so auf i zeigen lässt.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.542 Beiträge
 
Delphi 11 Alexandria
 
#5

Re: Resourcendatei zur Laufzeit erzeugen und an eine bestehe

  Alt 6. Okt 2007, 18:10
Lies doch mal die Hilfe.

Zitat von Win32-API Hilfe:
The UpdateResource function adds, deletes, or replaces a resource in an executable file.

BOOL UpdateResource(

HANDLE hUpdate, // update-file handle
LPCTSTR lpType, // address of resource type to update
LPCTSTR lpName, // address of resource name to update
WORD wLanguage, // language identifier of resource
LPVOID lpData, // address of resource data
DWORD cbData // length of resource data, in bytes
);


Parameters

hUpdate

Specifies an update-file handle. This handle is returned by the BeginUpdateResource function.

lpType

Points to a null-terminated string specifying the resource type to be updated. This parameter can also be an integer value passed to the MAKEINTRESOURCE macro, or it can be one of the following predefined resource types:

Value Meaning
RT_ACCELERATOR Accelerator table
RT_ANICURSOR Animated cursor
RT_ANIICON Animated icon
RT_BITMAP Bitmap resource
RT_CURSOR Hardware-dependent cursor resource
RT_DIALOG Dialog box
RT_FONT Font resource
RT_FONTDIR Font directory resource
RT_GROUP_CURSOR Hardware-independent cursor resource
RT_GROUP_ICON Hardware-independent icon resource
RT_ICON Hardware-dependent icon resource
RT_MENU Menu resource
RT_MESSAGETABLE Message-table entry
RT_RCDATA Application-defined resource (raw data)
RT_STRING String-table entry
RT_VERSION Version resource


lpName

Points to a null-terminated string specifying the name of the resource to be updated. This parameter can also be an integer value passed to the MAKEINTRESOURCE macro.

wLanguage

Specifies the language identifier of the resource to be updated. For a list of the primary language identifiers and sublanguage identifiers that make up a language identifier, see the MAKELANGID macro

lpData

Points to the resource data to be inserted into the executable file. If the resource is one of the predefined types, the data must be valid and properly aligned. Note that this is the raw binary data stored in the executable file, not the data provided by LoadIcon, LoadString, or other resource-specific load functions. All data containing strings or text must be in Unicode format; lpData must not point to ANSI data.
If lpData is NULL, the specified resource is deleted from the executable file.

cbData

Specifies the size, in bytes, of the resource data at lpData.



Return Values

If the function succeeds, the return value is nonzero.
If the function fails, the return value is zero. To get extended error information, call GetLastError.

Remarks

An application can use UpdateResource repeatedly to make changes to the resource data. Each call to UpdateResource contributes to an internal list of additions, deletions, and replacements but does not actually write the data to the executable file. The application must use the EndUpdateResource function to write the accumulated changes to the executable file.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
napsterxx

Registriert seit: 18. Mär 2007
Ort: Borland
556 Beiträge
 
Delphi 7 Enterprise
 
#6

Re: Resourcendatei zur Laufzeit erzeugen und an eine bestehe

  Alt 6. Okt 2007, 18:17
bitte bitte kläre mich auf^^ ich habs bitter nötig
Du derefernzierst p2 einmal und weißt die Adresse von i zu. Das heißt p2 (also der Zeiger auf einen Zeiger) zeigt auf den Zeiger p1 welchen du so auf i zeigen lässt.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.542 Beiträge
 
Delphi 11 Alexandria
 
#7

Re: Resourcendatei zur Laufzeit erzeugen und an eine bestehe

  Alt 6. Okt 2007, 18:26
UpdateResource(h,RT_RCDATA, 'text', 'RCDATA','C:\textfile.txt',340); Du müsstest die einzufügenden Ressourcen ja erst einmal in den Speicher laden (einen Dateinamen anzugeben macht ja wenig Sinn). Außerdem steht der 4. Parameter für die Sprache, da passt 'RCDATA' nicht . Das Folgende hab ich nicht getestet, hoffe aber, dass es so geht.
Delphi-Quellcode:
var sl: TStringList;
    h: THandle;
begin
  sl := TStringList.Create;
  try
    sl.LoadFromFile('C:\textfile.txt');
    h := BeginUpdateResource(PChar(Dateiname),false);
    try
      UpdateResource(h,RT_RCDATA,'text',LANG_NEUTRAL,@sl.Text[1],Length(sl.Text));
    finally
      EndUpdateResource(h,false);
    end;
  finally
    FreeAndNil(sl);
  end;
end;
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
napsterxx

Registriert seit: 18. Mär 2007
Ort: Borland
556 Beiträge
 
Delphi 7 Enterprise
 
#8

Re: Resourcendatei zur Laufzeit erzeugen und an eine bestehe

  Alt 6. Okt 2007, 18:32
^^ Irgendwie nicht^^ bei dem Code:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var sl: TStringList;
    h: THandle;
begin
  sl := TStringList.Create;
  try
    sl.LoadFromFile('C:\main.exe');
    h := BeginUpdateResource(PChar(Application.ExeName),false);
    try
      UpdateResource(h,RT_RCDATA,'text',LANG_NEUTRAL,@sl.Text[1],Length(sl.Text));
    finally
      EndUpdateResource(h,false);
    end;
  finally
    FreeAndNil(sl);
  end;
end;
wird eine RCX16.tmp erzeugt ...^^
Du derefernzierst p2 einmal und weißt die Adresse von i zu. Das heißt p2 (also der Zeiger auf einen Zeiger) zeigt auf den Zeiger p1 welchen du so auf i zeigen lässt.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.542 Beiträge
 
Delphi 11 Alexandria
 
#9

Re: Resourcendatei zur Laufzeit erzeugen und an eine bestehe

  Alt 6. Okt 2007, 18:34
Du willst main.exe in eine Stringliste laden?
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
napsterxx

Registriert seit: 18. Mär 2007
Ort: Borland
556 Beiträge
 
Delphi 7 Enterprise
 
#10

Re: Resourcendatei zur Laufzeit erzeugen und an eine bestehe

  Alt 6. Okt 2007, 18:35
Upsi ^^

^^ ich will ne exe reinladen hehe

Ich galube bei na exe muss ich das doch irgendiw mit denm Stream machen doer so...^^
Du derefernzierst p2 einmal und weißt die Adresse von i zu. Das heißt p2 (also der Zeiger auf einen Zeiger) zeigt auf den Zeiger p1 welchen du so auf i zeigen lässt.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 4  1 23     Letzte »    


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 18:36 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz