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

30.07.2008, 11:50

[Erledigt] CoInitialize() und Windowstyles

Hallo,
ich hätte drei Fragen, bei denen ich mir nach langem Suchen immer noch nicht sicher bin:

1. Muss man CoInitialize() oder CoInitializeEx() aufrufen, bevor man DirectX (genauer: Direct3D) benutzt, oder nicht?

2. Müssen im Vollbild- und im Fenstermodus die Styles CS_HREDRAW | CS_VREDRAW für das Fenster gesetzt sein?

3. Was haltet ihr für die beste Art, die Einstellungen (z.b. Auflösung, Backbufferformat usw.) zu speichern?
Bisher dachte ich an die Registry oder an eine Ini-Datei. Die Einstellungen sollen übrigens außerhalb der Anwendung veränderbar sein, also z.b. keine Binärspeicherung ;)

MfG

Anonymous

unregistriert

2

30.07.2008, 11:56

1/ Die Direct3D9Create ruft die intern auf und beim letzten Release werden diese auch deinitialisiert.

2/ Sollte man eigentlich immer setzen. An den 2 Flags sollte man nicht sparen.

3/ Nimm ne Ini-Datei. Schreibt ein Programm mir sowas in die Registry, lösche ich das Programm aus Prinzip von der Platte, egal wie gut es ist. Solche Einstellungen haben für mich in einer Registry nix zu suchen.

3

30.07.2008, 12:41

Danke! :D
Mit welcher Methode würdest du die INI-Datei verwalten?
Die WinAPI bietet hier diese Funktionen an: WritePrivateProfileString() und GetPrivateProfileString(). Sie sind allerdings als veraltet markiert.

4

30.07.2008, 12:44

Hm. XML :P
Devil Entertainment :: Your education is our inspiration
Der Spieleprogrammierer :: Community Magazin
Merlin - A Legend awakes :: You are a dedicated C++ (DirectX) programmer and you have ability to work in a team? Contact us!
Siedler II.5 RttR :: The old settlers-style is comming back!

Also known as (D)Evil

Anonymous

unregistriert

5

30.07.2008, 12:59

fluidblue
Make it yourself! Hab ich auch getan.

Einfach die Datei zeilenweise einlesen:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
std::ifstream input ("meine_config.ini");
if (!input.is_open ())
    throw "meine_config.ini not found";

std::string section = "";

for (std::string line = ""; std::getline (input, line); )
{
    // in line ist die aktuelle Zeile, nun nach [] parsen um "section" zu füllen. usw. dann nach = parsen usw.

}


Die std::map hilft dir ungemein.

Um eine ini mit Maps und Strings darzustellen kannst du folgendes benutzen:

C-/C++-Quelltext

1
2
// Aufbau: [sektionen : [schlüssel : wert]]

typedef std::map<std::string, std::map<std::string, std::string>> ini_map;


Easy, ist übrigends ne gute Übung um Strings, Streams und Dateiformate zu lernen.

Deviloper
Man sollte nicht mit ner ICBM auf Ameisen ballern.

S.Seegel

2x Contest-Sieger

  • Private Nachricht senden

6

30.07.2008, 15:13

<offtopic>

Zitat von »"unsigned long"«

Man sollte nicht mit ner ICBM auf Ameisen ballern.

Hey, spielt hier jemand defcon ? ;)
</offtopic>

Anonymous

unregistriert

7

30.07.2008, 15:23

Wenn es sonst keiner macht? Irgendeiner muss es machen - ICH :D

8

02.08.2008, 11:19

Danke für die Tipps!
Ich habe mich für ein ganz einfaches Format entschieden:
Eine Text-Datei, in der Zeilenweise die Konfiguration steht, also z.b. so:
Width=800
Height=600
Antialiasing=8
usw.
Das ist nämlich sehr schön zum (selber) einlesen ;)

Werbeanzeige