Autor | Thema: SaveResource | | Datum:24.04.02 18:06 
| |
Kurze Frage:
Gibt es eine solche Funktion:
SaveResource(dll%,"meinedateiimverzeichnis.exe",1,111)
Ich möchte eine Datei (meinedateiimverzeichnis.exe) als Typ 111 und mit den Namen 1 in der DLL dll% speichern. Ist sowas möglich?
|
| | Datum:24.04.02 20:04 
(galaxy@mrk-soft.de) | |
Nein. Das geht nur mit eimem Ext. Programm, z.b den Borland Res-Resource Workshop
|
| | Datum:24.04.02 20:08 
| |
Hallo,
wäre aber eine nette Anregung... ;-))
Gruß,
Frank
|
| | Datum:25.04.02 18:12 
| |
Ok ok aber es gibt ja beispielswe den Res-Shop-Pro
und wurde der in Profan geschrieben?
Wenn ja dann müsste es solche Funktionen ja geben
ehrlich gesagt kann ich mir das net vorstellen
es gibt funktionen zum laden und finden von ressourcen, dann müsste es doch auch eine geben um daten zu speichern...
vielleicht auch "nur" als dll oder so aber das würde ich auf mich nehmen ;)
|
| | Datum:25.04.02 18:34 
| |
Ich habe mir schon einige dokus über dlls angeschaut aber nirgends steht was darüber
hat nicht irgendeiner mal ne dll oder so geschrieben....:)
|
| | Datum:25.04.02 20:06 
| |
ich glaube aber das ihr (Frank Abbing und Thorsten) doch bestimmt schon ne Idee habt :) :) :)
oder?
also habe mal rumprobiert und es scheint das es wirklich keinen befehl ala daveresource gibt?
Und warum net?
|
| | Datum:25.04.02 20:41 
| |
Hallo Florian,
so eine Funktion ist mir zumindest nicht bekannt, und eine Idee hierzu habe ich auch nicht, Thorsten ist hier sicher besser bewandert, hat er doch schon etwas zu diesem Thema programmiert.
Daten-Dll's und richtige Dll's sind doch ein himmelhoher Unterschied...
Im Grunde kann aber jeder einer Dll oder einem Exeprogramm Daten hinzufügen, solche Befehle stellt Profan ja bereit, BlockWrite z.B. Du mußt dir halt Info's besorgen, wie und wo etwas angehängt werden muß...
Gruß, Frank
|
| | Datum:26.04.02 17:31 
(mrk@mrk-soft.de) | |
Hmmm,
Res-Shop Pro kann natürlich auch DLLs erzeugen, in denen dann
Resourden stehen, das stimmt schon. Allerdings steckt hier
viel "Know how" Hinter, jetzt nicht von der Seite des Wissens
gesehen, sondern von der Technik selber.
Da Res-Shop Pro gerade nochmal überarbeitet wird, (neue IDE,
verbessertes Handling und noch ein paar neue Funktionen mehr),
werde ich natürlich nicht unbedingt alle Geheimnisse verraten
wollen, MS gibt ja den Code von Windows auch nit Preis, gelle.
Thorsten
|
| | Datum:27.04.02 11:36 
| |
so meine ich das ja nicht
ich möchte ja auch nicht mit nen fertigen quellcode nach hause gehen (doch vielleicht ;))
ich möchte halt nur mla wissen WO ich infos darüber bekomme und wie das so im groben ablaufen sollte
ich habe nämlich wirklich keine lust mich damit wochen zu beschäftigen und nacher zu erfahren "das geht doch garnet"
zudem war ich verwundert...es gibt apis zum lesen (ok callback geht ja net mit profan), laden, größe ermitteln und kopieren und dann ,üsste es doch auch eine geben wie schon gesagt saveressource
ik ich danke euch beiden werde mich mal auf die sache machen und wenn ich was finde gibt ne neue nachricht
über tipps usw bin ich offen
leider habe ich nicht ser viel zeit, da ich gerade an einen projekt arbeite und dort eine wichtige funktionen erstmal fertig gestellt werden muss
danke
schönes wochenedne
|
| | Datum:27.04.02 12:55 
(schmidts@flat2serv.de) | |
Hallo,
in der Windows-API habe ich so ad hoc nichts weiter gefunden. Ich denke, hier kann Thorsten ev. einspringen, er hat diesbzgl. Erfahrungen. Vielleicht erzählt er mal, wie es grob funktioniert, dann können wir ja mal ansetzen.
Sven
|
| | Datum:27.04.02 20:19 
| |
Ja eine PErson mit erfahrung wäre hilfreich
|
| | Datum:27.04.02 22:54 
(Pascalxd@owl-online.de) | |
Hallo Leute!
Vielleicht sollte man mal erwähnen, dass es einen grossen Unterschied gibt zwischen
"Einlinken" und "Anhängen".
Zum Einlinken einer Resource in eine exe oder dll müssen etliche Header umgeschrieben und ergänzt werden, ganz zu schweigen von den Resourcen selbst (wenn's Standart-Resourcen sind, müssen auch da die Dateiheader gekürzt werden; Icons und Cursors werden sogar in verschiedene Res-Typen aufgesplittet)
Genaue Infos über die Struktur von exe und dll gibt's im WWW (nach "Portable Executable File Format" suchen).
Theoretisch wäre sowas mit Profan auf binärer Ebene möglich; aus der Praxis halte ich mich lieber raus...
Soweit ich weiss, werden beim Res-Shop (zumindest bei der älteren Version) die Resourcen "nur"
angehängt und müssen beim Start des Programms wieder abgekoppelt und zwischengespeichert
werden (Richtig, Thorsten?)
Das hat natürlich den Vorteil, dass man mit üblichen ResourceEditoren nicht drankommt.
@ Florian: Was hast du denn genau vor? (Du hattest erwähnt, dass du eine exe in einer dll
speichern willst. Warum?)
@ Alle: Was ist eigendlich mit der API ""UpdateResource"??
Unter Win9x war's nur ein Dummy, ab NT 3.1 (und damit auch XP) sollte sie aber funktionieren.
SeeYou
Pascal
|
| | Datum:28.04.02 08:23 
(mrk@mrk-soft.de) | |
>Soweit ich weiss, werden beim Res-Shop (zumindest bei der
>älteren Version) die Resourcen "nur"
>angehängt und müssen beim Start des Programms wieder
>abgekoppelt und zwischengespeichert
>werden (Richtig, Thorsten?)
Nicht ganz. Version 3.0 (Deluxe Version), kann auch richtige
Windows DLL erzeugen, und die neue 4.0er natürlich auch.
|
| | Datum:28.04.02 02:03 
| |
Also wie blind müssen API-Spezialisten sein, um Funktionen wie "LoadResource" zu übersehen? Damit geht das einwandfrei!
Dr. Mabuse
|
| | | Datum:28.04.02 12:43 
| |
Verstehe ich auch nicht hehe
|
| | Datum:28.04.02 15:20 
| |
Ich finde es irgendwie komisch, dass sämtliche API-Gurus, die hier geantwortet haben, diese einfache Aufgabe nicht lösen können.
Ich hätte mehr von Euch erwartet...
Dr. Mabuse
Def FindResource(3) !"KERNEL32","FindResourceA"
Def LoadResource(2) !"KERNEL32","LoadResource"
Def LockResource(1) !"KERNEL32","LockResource"
Def SizeofResource(2) !"KERNEL32","SizeofResource"
Declare dummy#
Proc SaveRes2File
Parameters mod$,restype$,resname$,filename$
Declare hresinf&,hmod&,hres&,pdata&,size&,pdummy&,result&
result&=0
hmod&=UseDLL(mod$)
If hmod&
hresinf&=FindResource(hmod&,Addr(resname$),Addr(restype$))
hres&=LoadResource(hmod&,hresinf&)
pdata&=LockResource(hres&)
size&=SizeofResource(hmod&,hresinf&)
If size&
Dim dummy#,size&+1
pdummy&=dummy#
dummy#=pdata&
Assign #1,filename$
OpenRW #1
BlockWrite #1,dummy#,0,size&
CloseRW #1
dummy#=pdummy&
Dispose dummy#
result&=Not(%IOResult)
EndIf
FreeDll hmod&
EndIf
Return result&
EndProc
' Beispiel
SaveRes2File "SHELL32.DLL","AVI","#150","C:\~SAVERES.AVI"
If &(0)
ShellExec("C:\~SAVERES.AVI","open",1)
Else
Print "Fehler aufgetreten"
EndIf
WaitInput
|
| | Datum:28.04.02 16:52 
| |
Wenn einem dieser Stil nicht bekanntvorkommt ...
Totgesagte leben länger!
|
| | Datum:29.04.02 01:36 
| |
>Wenn einem dieser Stil nicht bekanntvorkommt ...
>Totgesagte leben länger!
*ROTFL*
meinst du nur tote können ordentlichen code schreiben?
dau backe...
|
| | Datum:28.04.02 17:07 
(mrk@mrk-soft.de) | |
Hmmmmm,
Irgendwie ging es doch darum, das Flori eine belibige
Datei in eine DLL zu Speichern wollte !!!! , NICHT eine
Resource aus einer DLL in einer Datei.
Und für Obiges ist eine direkte API nicht vorhanden !!!
|
|
|