• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Visual Studio Błąd (aktywny) E0167 argument typu "const char *" jest niezgodny z parametrem typu "LPCWSTR"

Object Storage Arubacloud
+1 głos
1,062 wizyt
pytanie zadane 15 lutego 2021 w C i C++ przez zuzannaruda Nowicjusz (240 p.)

Witam, 

Stawiam pierwsze kroki w Visual Studio i SDL. Wykorzystałam do nauki kod  z pewnej strony ale niestety mi się nie kompiluje. Nie wiem czy to problem ze źle zainstalowaną biblioteką czy błąd w kodzie. Proszę o pomoc. Występują następujące błędy:

Błąd (aktywny)    E0167    argument typu "const char *" jest niezgodny z parametrem typu "LPCWST"
Błąd (aktywny)    E0020    identyfikator "SDL_SetVideoMode"  jest niezdefiniowany 

Błąd (aktywny)    E0020    identyfikator "SDL_HWSURFACE" jest niezdefiniowany 

Nie jestem zbyt biegła w tym temacie więc proszę o pomoc.

Oto kod:

//tworzenie powierzchni graficznej
#include <Windows.h>
#include <SDL.h>

int main(int argc, char* argv[]) {
	SDL_Surface* screen;
	//inicjujemy biblioteke SDL
	if (SDL_Init(SDL_INIT_VIDEO)) {
		MessageBox(0, SDL_GetError(), "Blad inicjalizacji SDL", MB_OK);
		exit(-1); //wyswietlamy opis bledu i konczymy
	}
	atexit(SDL_Quit); //przy zakonczeniu bedzie wywolane SDL_Quit

	//tworzymy bufor obrazowy 340 X 280 pikseli o glebi 32 bitow
	if (!(screen = SDL_SetVideoMode(320, 240, 32, SDL_HWSURFACE))){
		MessageBox(0, SDL_GetError(), "Blad tworzenia bufora obrazowego", MB_OK);
		exit(-1);//wyswietlamy opis bledu i konczymy
	}

	//wszystko w porzadku. Obraz graficzny pojawia sie na ekanie monitora.
	MessageBox(0, "Wszystko OK", "Ekran SDL", MB_OK);
	
}

 

3 odpowiedzi

+2 głosów
odpowiedź 15 lutego 2021 przez adrian17 Ekspert (344,860 p.)
wybrane 24 lutego 2021 przez zuzannaruda
 
Najlepsza

Błąd (aktywny)    E0167    argument typu "const char *" jest niezgodny z parametrem typu "LPCWST"

Do windowsowych funkcji typu MessageBox spróbuj przekazywać "szerokie" stringi (czyli L"Wszystko ok"), albo użyj MessageBoxA.

Błąd (aktywny)    E0020    identyfikator "SDL_SetVideoMode"  jest niezdefiniowany 

Błąd (aktywny)    E0020    identyfikator "SDL_HWSURFACE" jest niezdefiniowany 

Czytasz jakieś mega stare materiały. SDL2 nie ma tych funkcji.

(możesz np rzucić okiem na https://lazyfoo.net/tutorials/SDL/ )

komentarz 24 lutego 2021 przez zuzannaruda Nowicjusz (240 p.)
Dziękuję za pomoc, faktycznie materiały stare, przejrzałam stronę z odpowiedzi, ale znalazłam jeszcze  po polsku:

https://eduinf.waw.pl/inf/prg/011_sdl2/index.php
0 głosów
odpowiedź 15 lutego 2021 przez Psz3mo Mądrala (5,030 p.)
edycja 15 lutego 2021 przez Psz3mo

Nie wiem czy to pomoże, ale ten problem z LPCWSTR np. tak:

MessageBox(NULL, LPCSTR("napis"), LPCSTR("napis"), MB_ICONWARNING);

Ale musisz jeszcze żeby to działało zrobić tak :

Projekt > Właściwości<nazwa> > Zaawansowane > Zestaw znaków > Używaj wielobajtowego zestawu znaków.

Nie znam się na SDL, ale jak trochę poszukałem tutaj https://cpp0x.pl/dokumentacja/SDL-1-2/SDL_Init/538

ty masz inna załączoną bibliotekę, ale do końca nie wiem czy to o to w tym chodzi.

komentarz 15 lutego 2021 przez j23 Mędrzec (194,920 p.)

To rzutowanie jest bez sensu, wszak LPCSTR to nic innego jak const char*, czyli typ zgodny z literałem tekstowym.

Jeśli już, to tak:

MessageBox(NULL, TEXT("napis"), TEXT("napis"), MB_ICONWARNING);

 

0 głosów
odpowiedź 15 lutego 2021 przez VBService Ekspert (253,340 p.)
edycja 15 lutego 2021 przez VBService

What does the 'L' in front a string mean in C++?

MessageBox - winuser.h (include Windows.h)

 

Błąd (aktywny)    E0020    identyfikator "SDL_SetVideoMode"  jest niezdefiniowany 

Błąd (aktywny)    E0020    identyfikator "SDL_HWSURFACE" jest niezdefiniowany 

How to install SDL 2 with Visual Studio on Windows (2020) -> 10 minuta 11 sekunda.  laugh

Podobne pytania

0 głosów
1 odpowiedź 508 wizyt
pytanie zadane 11 listopada 2017 w C i C++ przez milioneq Początkujący (260 p.)
0 głosów
0 odpowiedzi 189 wizyt
pytanie zadane 21 marca 2018 w JavaScript przez kubekszklany Gaduła (3,190 p.)
+1 głos
1 odpowiedź 1,692 wizyt
pytanie zadane 2 sierpnia 2019 w C# przez fourfeeter Początkujący (340 p.)

92,576 zapytań

141,426 odpowiedzi

319,652 komentarzy

61,961 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...