Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

Samuel G.

Treue Seele

  • »Samuel G.« ist der Autor dieses Themas

Beiträge: 110

Wohnort: Stuttgart

Beruf: Schüler

  • Private Nachricht senden

1

17.07.2005, 19:44

Windows Resourcen - Hä?

Hallo :) :) :)


Also mir ist da einiges unklar beim Verständnis der Funktion und Verwendung von Windows Resourcen. Meine bisherige These: Man braucht: ein .rc File und nen .h, aber anscheinend irgendwie noch ne dritte Datei.
Wozu im Einzelnen brauch ich die?
Was sind .RES Files? Und wie verwendet man sie?
und: Wenn ich ne resource kompiliere, wird die dann in die .exe binär mit reingeschrieben?
Wie erzeuge ich eine Resource für einen Dialog (ohne Visual Studio)? Welche Dateien brauche ich? Wie binde ich die Resource dann in mein Projekt ein?
Welche Syntax hat der Quellcode einer Resource? (Dokumentation?)


Das sind einige Fragen, deren Beantwortung mir höchstwahrscheinlich beim Verständnis helfen.


Samuel G.
Quak

koschka

Community-Fossil

Beiträge: 2 862

Wohnort: Dresden

Beruf: Student

  • Private Nachricht senden

2

17.07.2005, 20:38

Ja dat is doch mal ne gescheite Frage ;). ALSO. Resourcen werden u.a. im Zusammenhang mit der WinAPI benutzt, traditionell gesehen. in das .rc File kommt der "Designcode", deiner Dialoge aber auch ICONS u.s.w.

.RES Dateien sind Kompilierte RC dateien. Dieser Designcode muss ja auch kompiliert werden....

Zitat


Wenn ich ne resource kompiliere, wird die dann in die .exe binär mit reingeschrieben?


... und wird dann in die EXE mit reingeschrieben. Wie z.b. das Icon einer Anwendung. Oder eben die Dialoge.

Zitat


Und wie verwendet man sie?

.RES Dateien kann man mit dem Code in manchen Kompilern verknüpfen, bzw. muss man. Bei Visual Studio macht der das aber automatisch.

Zitat


Wie erzeuge ich eine Resource für einen Dialog (ohne Visual Studio)?


Öffne mal eine .RC datei mit dem Notepad. Da wirst du verblüffendes feststellen. ein Dialog wird einfach in die .RC Datei geschriben nach folgendem Muster:

Quellcode

1
CREDITS DIALOG 0, 0, 100, 110


Das ist der sogennante Header Teil. CREDITS ist der Name, DIALOG der Typ. 0->x, 0->y, 100->Breite, 110->Höhe
Der Header kann aus mehreren Elementen bestehen, die dann nach diesem kommen wie FONT, STYLE etc.
Danach kommt eine BEGIN - END "Klammer" die die Steuerelemente umfasst.

Quellcode

1
2
3
4
5
6
7
8
BEGIN
    PUSHBUTTON      "OK",IDOK,7,98,118,14,BS_FLAT
    GROUPBOX        "Programmeigenschaften",IDC_STATIC,7,7,118,30
    LTEXT           "Versionsnummer",IDC_STATIC,13,20,53,8
    LTEXT           "ID_VERSION",ID_VERSION,72,20,45,8,0,WS_EX_RIGHT
    LTEXT           "Credits",IDC_STATIC,7,41,24,8,
                    IDC_STATIC,13,52,112,41,0,WS_EX_TRANSPARENT
END


Diese werden auch immer nach einen Muster definiert. TYP, Bezeichner, ID, x, y, w, h, STYLE
LTEXT = Static control. (left)
GROUPBOX = is ja klar oder?
BUTTON = Button

und noch weitere wie EDIT, COMBOBOX und LISTBOX.

Wenn ich dir nen heissten Tip geben darf, kauf dir das Buch von Petzold. "Windows Programmierung". Oder es gibt auch alte EBooks über Win32 Programming.

Zitat


Welche Syntax hat der Quellcode einer Resource?

Hmm, so genau weiss ich das auch nicht, aber es könnten Makros sein ?!?

Und man braucht eigentlich nur das .RC File, dann die Resource.h wo die ID's definiert sind (kann man aber auch im .RC machen) und die windows.h im .RC File.

Das .RES File wird dann aus dem .RC File kompiliert.

Bei Fehlern bitte korrigieren ;).
Wenn man das verstanden hat und die WinAPI, hat man Windows verstanden ;). Das sind die Grundlagen, aber die meisten steigen ja eh gleich mit MFC und den ganzen Müll ein.

Samuel G.

Treue Seele

  • »Samuel G.« ist der Autor dieses Themas

Beiträge: 110

Wohnort: Stuttgart

Beruf: Schüler

  • Private Nachricht senden

3

17.07.2005, 20:54

Danke für die Hilfe. Witzig: Du hast erst die Syntax des Quellcodes einer Resource erklärt, und dann geschrieben:

Zitat


Zitat


Welche Syntax hat der Quellcode einer Resource?

Hmm, so genau weiss ich das auch nicht, aber es könnten Makros sein ?!?


Zitat

Wenn man das verstanden hat und die WinAPI, hat man Windows verstanden Zwinker. Das sind die Grundlagen, aber die meisten steigen ja eh gleich mit MFC und den ganzen Müll ein.


Naja. Wenn man schnell zum Ziel will ist das O.K. Ich arbeite halt auf API-Ebene, weil mich die Grundlagen interessieren, und weil ich in ner Game-Engine (die sicher erste Sahne wird ;) ) nicht so viel Ballast mitschleppen will. Ich kapsel mir halt selber das nötigste.
Quak

koschka

Community-Fossil

Beiträge: 2 862

Wohnort: Dresden

Beruf: Student

  • Private Nachricht senden

4

17.07.2005, 21:00

ja ich meinte damit das es Makros sein KÖNNTEN, also vom Systax her, weiter oeben waren ja nur Syntax beispiele. Der syntax ist ja die allgemeine Form ;).

Man sollte trotzdem die Basics kennen, wenigstens etwas.

Zitat


Ich arbeite halt auf API-Ebene, weil mich die Grundlagen interessieren, und weil ich in ner Game-Engine (die sicher erste Sahne wird Zwinker ) nicht so viel Ballast mitschleppen will. Ich kapsel mir halt selber das nötigste.


Absolut richtig, das lässt sich eigentlich aber auch auf Windows Applikationen übertragen ;).

Samuel G.

Treue Seele

  • »Samuel G.« ist der Autor dieses Themas

Beiträge: 110

Wohnort: Stuttgart

Beruf: Schüler

  • Private Nachricht senden

5

17.07.2005, 21:16

Beitrag

Zitat

Absolut richtig, das lässt sich eigentlich aber auch auf Windows Applikationen übertragen Zwinker.

:-D :-D :-D Naja...

Noch ne Frage: Ich hab da sonen Resourcen-Editor geladen (PE Module Explorer), der kann aber nur fertig kompilierte Resourcen erzeugen. Wie bindet man die Viecher ein? Also meine IDE (DevCpp 5) kann das irgendwie automatisch. Die macht dann aber was komisches:
1. Sie erstellt ne .rc, in der steht:

C-/C++-Quelltext

1
#include "TestResource.RES"
(TestResource.RES ist die kompilierte Resource

2. Sie erstellt nen Header, in dem lauter seltsames Zeugs steht (das aber nix mit der TestResource zu tun zu haben scheint):

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
/* VERSION DEFINITIONS */
#define VER_STRING  "0.1.1.1"
#define VER_MAJOR   0
#define VER_MINOR   1
#define VER_RELEASE 1
#define VER_BUILD   1
#define COMPANY_NAME    ""
#define FILE_VERSION    ""
#define FILE_DESCRIPTION    "Developed using the Dev-C++ IDE"
#define INTERNAL_NAME   ""
#define LEGAL_COPYRIGHT ""
#define LEGAL_TRADEMARKS    ""
#define ORIGINAL_FILENAME   ""
#define PRODUCT_NAME    ""
#define PRODUCT_VERSION ""


Hmm... Wie lade ich jetzt die Resource? Unter Visual hab ich das immer mit MAKEINTRESOURCE gemacht. Aber das geht ja wohl nicht ohne die passenden #define-Symbole.
Quak

Samuel G.

Treue Seele

  • »Samuel G.« ist der Autor dieses Themas

Beiträge: 110

Wohnort: Stuttgart

Beruf: Schüler

  • Private Nachricht senden

6

18.07.2005, 16:27

Beitrag

Also, wens interessiert: Ich hab da nen scheinbar sehr guten Resourcen-Editor gefunden (der .rc Dateien erzeugen kann):

Resource Builder: http://www.sicomponents.com/rbldr.html
Quak

JossBoss

Treue Seele

Beiträge: 182

Wohnort: Luxemburg

  • Private Nachricht senden

7

28.07.2005, 19:27

Was istzb eigentlich eine Windows Ressource was steht darin??? Wieso braucht man die für virtuelle Dateien? ???

koschka

Community-Fossil

Beiträge: 2 862

Wohnort: Dresden

Beruf: Student

  • Private Nachricht senden

8

28.07.2005, 20:22

In Windows Resourcen werden Dialoge, Icons, Bitmaps, Menüs, Stringtables ... alles deklariert was Konstanden enthällt.

Hauptaugenmerk liegt auf den Dialogen und Steuerelemente.

Was meinst du mit virtuelle Dateien?

Samuel G.

Treue Seele

  • »Samuel G.« ist der Autor dieses Themas

Beiträge: 110

Wohnort: Stuttgart

Beruf: Schüler

  • Private Nachricht senden

9

12.08.2005, 15:34

Beitrag

Also wenn er mit "virtuelle Dateien" virtuelle Dateien meint, wuerde ich sagen: man braucht sie nicht.


Samuel G.
Quak

Werbeanzeige