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

1

23.02.2004, 19:10

2 fragen

hi ho...

ich bin jetzt schon bis zum nebelbeispiel vortgeschritten aber 2 fragen hab ich trotzdem

1) ich bekomme diese fehlermeldung:

Ressourcen werden kompiliert...
D:\Programme\TriBase\Beispiele\Kapitel 02\06 - Nebel\Nebel.rc (125): error RC2104 : undefined keyword or key name: IDC_QUIT
Fehler beim Ausführen von rc.exe.

Adapter.exe - 1 Fehler, 0 Warnung(en)

ich hab aber die richtige resource.h und auch die nebel.rc eingebunden...alles ist wie in den projekteinstellungen wie in der tribase engine.
hab ich da vergessen ne datei zu linken ?

2) warum werden solche sachen wie MB_OK | MB_ICONEXCLAMATION mit dem | operator anstatt || verknüpft?
| das bedeutet ja bitweise aber wie führt das zum gewünschten effekt?

danke im voraus und happy coding ;)

NoName

Treue Seele

Beiträge: 118

Beruf: Student

  • Private Nachricht senden

2

24.02.2004, 16:56

zu 2: Der "||"-Operator funktioniert wie folgt:

Var1 || Var2 == 0, genau dann, wenn Var1 = Var2 = 0
Var1 || Var2 != 0, genau dann, wenn Var1 != 0 oder Var2 != 0.

Der "|"-Operator wendet den "||"-Operator auf jedes einzelne Bit an.
Beispiel:

Quellcode

1
2
3
4
unsigned char Var1 = 0xA7;        // 1010 0111
unsigned char Var2 = 0x34;        // 0011 0010
unsigned char Var3 = Var1 | Var2; // 1011 0111 = 0xB7
printf ("Var1 | Var2 = %H.\n", Var3);

Ausgabe:
Var1 | Var2 = 0xB7.

3

01.03.2004, 18:07

ja was das bedeutet is mir schon klar...aer MB_OK | MB_ICONEXCLAMATION bezeichnet ja glaub ich den button mit dem man das fenster dann schließen kann....

nehmen wir jetzt einfach mal an das MB_OK diese maske hat: 0101 1101
und MB_ICONEXCLAMATION diese: 0001 1110

dann ist als ergebnis MB_OK | MB_ICONEXCLAMATION: 0101 1111

und warum erscheint dann da trotzdem ein ok-button und was bewirkt er???


und zur ersten frage:

ich bekomme die warnungen da

--------------------Konfiguration: Adapter - Win32 Release--------------------
Linker-Vorgang läuft...
LINK : warning LNK4075: /EDITANDCONTINUE wird aufgrund der Angabe von /INCREMENTAL:NO ignoriert
LINK : warning LNK4098: Standardbibliothek "LIBCD" steht in Konflikt mit anderen Bibliotheken; /NODEFAULT:Bibliothek verwenden


vielleicht liegts ja daran aber ich denke mal da kann mir sowieso nur his c++ness david helfen ^^

4

01.03.2004, 19:20

Die Maksen die du angegeben hast können nicht Funktionieren. MB_OK und MB_ICONEXCLAMATION sind sogenante Flags.

Das ganze könnte etwa so aussehen:

Quellcode

1
2
#define MB_OK 0x01 // (Bit: 00000001)
#define MB_ICONEXCLAMATION 0x02 // (Bit:00000010) 
Bei der Oderverknüpfung bekommt man nun einen Netten kleinen Wert Bit: 00000011. Die Funktion MessageBox prüft nun ab ob das Bit 0 gesetzt ist, wenn ja wird der OK Button angezeigt. Mit dem anderen Bit macht die Funktion das selbe, wenn Bit 1 gesetzt ist, wird das Icon angezeigt.

Das sollte man aber doch wissen. Schließlich macht die WinAPI sehr viele Dinge über Flags.
Wichtig! Ich übernehme keinerlei Verantwortung für eventl. Datenverlust oder Schäden am Rechner ;D

5

03.03.2004, 17:54

aaaah...erscheint mir logisch jetz wo du es sagst ^^

aber viel wichtiger ist die lösung zu problem 1 :-p

Werbeanzeige