AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Delphi Res --> DLL - dcc32 compalieren
Thema durchsuchen
Ansicht
Themen-Optionen

Res --> DLL - dcc32 compalieren

Ein Thema von ATS3788 · begonnen am 14. Jul 2012 · letzter Beitrag vom 17. Jul 2012
Antwort Antwort
Benutzerbild von ATS3788
ATS3788

Registriert seit: 18. Mär 2004
Ort: Kriftel
646 Beiträge
 
Delphi XE Starter
 
#1

Res --> DLL - dcc32 compalieren

  Alt 14. Jul 2012, 12:11
Hallo

Wenn man keine Vollversion von Delphi hat.
also nur die Starter, kann man ja dcc32 nicht benutzen.

Ich müsste aber eine "RES" Ressourcen Datei, automatisch
in eine DLL kompilieren. Habe bei den Kollegen von
http://www.c-plusplus.de
gefragt wie die das machen, leider ohne Feedback.

Wie gesagt ich möchte nur einen DLL Header um die "Res"
Datei packen.
Also brauche ich keine Libraries

Martin Michael
Martin MIchael
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.071 Beiträge
 
Delphi 12 Athens
 
#2

AW: Res --> DLL - dcc32 compalieren

  Alt 14. Jul 2012, 22:12
Du mußt ja nicht unbedingt den Resouce Compiler von Delphi verwenden.

http://msdn.microsoft.com/en-us/libr.../aa381042.aspx



PS:
Probier mal Folgendes:
{$RESOURCE Dateiname.res Dateiname.rc}

Oder du schaffst via MSDN-Library durchsuchenUpdateResource deine Resourcen nachträglich in die DLL rein.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

Geändert von himitsu (14. Jul 2012 um 22:23 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von ATS3788
ATS3788

Registriert seit: 18. Mär 2004
Ort: Kriftel
646 Beiträge
 
Delphi XE Starter
 
#3

AW: Res --> DLL - dcc32 compalieren

  Alt 16. Jul 2012, 16:23
Danke himitsu

Schaue ich mir an
Martin MIchael
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#4

AW: Res --> DLL - dcc32 compalieren

  Alt 16. Jul 2012, 17:29
Oder du nimmst einfach folgende Projektdatei (Text kopieren und als MeineResourcen.dpr abspeichern)
Delphi-Quellcode:
library MeineResourcen;

{$R *.RES}

begin
end.
Dann kopierst du deine RES-Dateien mit in das Verzeichnis und kompilierst mit Delphi.

Du kannst auch RC-Dateien zum Projekt hinzufügen.
Diese werden dann RES-Dateien kompiliert (mit BRCC32.exe) und zur Resourcen-DLL dazugelinkt.
Andreas

Geändert von shmia (16. Jul 2012 um 17:33 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von ATS3788
ATS3788

Registriert seit: 18. Mär 2004
Ort: Kriftel
646 Beiträge
 
Delphi XE Starter
 
#5

AW: Res --> DLL - dcc32 compalieren

  Alt 17. Jul 2012, 16:31
shmia
Zitat:
Nur das wäre ja zu einfach,
wo bleibt da der Spass

Das habe ich von C++ umgeschrieben
nur dummerweisse stimmt die grösse nicht bei

SizeofResource(hExe, hRes)


Delphi-Quellcode:
var
hResLoad : HGLOBAL; // handle to loaded resource
hExe : HMODULE; // handle to existing .EXE file
hRes : HRSRC; // handle/ptr. to res. info. in hExe
hUpdateRes : THANDLE; // update resource handle
lpResLock : pointer; // pointer to resource data
result : BOOL;
begin
// Load the .EXE/.DLL file that contains the ICONs you want to copy.
hExe := LoadLibraryEX('D:\Resource\Debug\Win32\testdll.dll' , 0 , LOAD_LIBRARY_AS_DATAFILE);
if hEXE = 0 then begin
raise Exception.Create('Could not load exe.');
exit;
end;
// Locate the ICON resource
hRes := FindResource(hExe, 'ico1', RT_GROUP_ICON );
if hRes = 0 then begin
  raise Exception.CreateFmt('Could not locate an ICON - %s' , ['ico0']);
    exit;
end;
// Load the ICON into global memory.
hResLoad := LoadResource(hExe, hRes);
if hResLoad = 0 then begin

raise Exception.Create('Could not load Icon.');
    exit;

end;

// Lock the ICON into global memory.
lpResLock := LockResource(hResLoad);
if lpResLock = nil then begin
  raise Exception.Create('Could not lock dialog box.');
    exit;
 end;


// Open the file to which you want to add the ICON resource.
hUpdateRes := BeginUpdateResource('D:\Resource\Debug\Win32\test7.dll' , FALSE);
if hUpdateRes = 0 then begin
     raise Exception.Create('Could not open file for writing.');
    exit;
 end;


 Button1.Caption := IntToStr(SizeofResource(hExe, hRes));

// Add the ICON resource to the update list.
result := UpdateResource(hUpdateRes, // update resource handle
    RT_GROUP_ICON, // change dialog box resource
    'zzy77', //yyz77 //MAKEINTRESOURCE(102),
    MAKELANGID(LANG_NEUTRAL, SUBLANG_NEUTRAL), // neutral language
    lpResLock, // ptr to resource info
    SizeofResource(hExe, hRes)); // size of resource info
 if not result then begin
     raise Exception.Create('Could not add resource.');
    exit;
 end;

// Write changes to the dll and then close it.
if not EndUpdateResource(hUpdateRes, FALSE) then begin
     raise Exception.Create('Could not write changes to file.');
    exit
end;
 // Clean up.
if not FreeLibrary(hExe) then begin

  raise Exception.Create('Could not free executable.');
    exit;

end;
Wo bin ich mal wieder blind.
Habe mir das mit ResEdit angeschaut, die Resource wird erstellt
nur leider zu wenig bytes.
Stört euch nicht an dialog box das habe ich noch nicht geändert
Martin MIchael

Geändert von ATS3788 (17. Jul 2012 um 17:05 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von ATS3788
ATS3788

Registriert seit: 18. Mär 2004
Ort: Kriftel
646 Beiträge
 
Delphi XE Starter
 
#6

AW: Res --> DLL - dcc32 compalieren

  Alt 17. Jul 2012, 17:20
http://www.codeguru.com/cpp/w-p/win3...-Resources.htm

Habe da noch was von den C++ Kollegen gefunden, habe wohl ein Problem mit dem header
Habe heute keine Lust mehr.
Martin MIchael
  Mit Zitat antworten Zitat
Antwort Antwort


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 11:28 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