[C++] Zmiana trybu graficznego

0

Witam!
Przedstawię mój problem. Chcę zmienić tryb graficzny (rozdzielczość, odświeżanie, pełny ekran) w moim programie. Czytałem wiele w necie, ale wszystko z Delphi. Próbowałem przełożyć to sobie na C++, ale nic z tego ;/ Czytałem coś na M$ o DEVMODE, ale jak dodaję deklarację tego typu to mam błędy dziwne i wgl. Proszę o szybką pomoc!
PS: Oczywiście w grę nie wchodzą biblioteki typu SDL ;)

0

Oczywiście w grę nie wchodzą biblioteki typu SDL
Dlaczego „oczywiście”? Rozumiem, że masz swoje powody, ale nie są one dla innych „oczywiste”.

Próbowałem przełożyć to sobie na C++, ale nic z tego ;/
Pokaż kod, i powiedz jaki masz z nim problem.

0

Nie czepiaj się ;) Napisałem, aby wszyscy wiedzieli i nie pisali tego typu postów: "Ściągnij se SDL'a i tam masz czego potrzebujesz"
No okej masz tu kod z tego forum w Delphi:

var
  Mode: TDeviceMode;
begin
  with Mode do
  begin
    dmSize := SizeOf(Mode);
    dmBitsPerPel := 16;
    dmPelsWidth := 640;
    dmPelsHeight := 480;
    dmFields := DM_PELSWIDTH + DM_PELSHEIGHT;
    ChangeDisplaySettings(Mode, 0)
  end;
end;

A tu z MSDN'u strukturę w CPP:

typedef struct_devicemode { 
  WCHAR dmDeviceName[CCHDEVICENAME]; 
  WORD dmSpecVersion; 
  WORD dmDriverVersion; 
  WORD dmSize; 
  WORD dmDriverExtra; 
  DWORD dmFields; 
  short dmOrientation; 
  short dmPaperSize; 
  short dmPaperLength; 
  short dmPaperWidth; 
  short dmScale; 
  short dmCopies; 
  short dmDefaultSource; 
  short dmPrintQuality; 
  short dmColor; 
  short dmDuplex; 
  short dmYResolution; 
  short dmTTOption; 
  short dmCollate; 
  BCHAR dmFormName[CCHFORMNAME]; 
  WORD dmLogPixels; 
  DWORD dmBitsPerPel; 
  DWORD dmPelsWidth; 
  DWORD dmPelsHeight; 
  DWORD dmDisplayFlags; 
  DWORD dmDisplayFrequency; 
  DWORD dmDisplayOrientation;
} DEVMODE; 

Tyle, że nie wiem jak to zrobić ;/ Jak wywołuję ChangeDisplaySettings(Mode, 0) to jest error, że nie może przeształcić devicemode na devicemode*. Coś takiego. Próbowałem różności, ale nie mogę sobie z tym poradzić. Proszę o odpowiedź.

0
var
  Mode: TDeviceMode;
begin
  with Mode do
  begin
    dmSize := SizeOf(Mode);
    dmBitsPerPel := 16;
    dmPelsWidth := 640;
    dmPelsHeight := 480;
    dmFields := DM_PELSWIDTH + DM_PELSHEIGHT;
    ChangeDisplaySettings(Mode, 0)
  end;
end;
DEVMODE Mode;
Mode.dmSize = sizeof(DEVMODE);
Mode.dmBitsPerPel = 16;
Mode.dmPelsWidth = 640;
Mode.dmPelsHeight = 480;
dmFields = DM_PELSWIDTH | DM_PELSHEIGHT;
ChangeDisplaySettings(&Mode,0);

1 użytkowników online, w tym zalogowanych: 0, gości: 1