Autor Wątek: [WinAPI] Problem z CreateFile  (Przeczytany 2475 razy)

Offline HellCat

  • Użytkownik

# Marzec 08, 2006, 13:17:51
Hi.

Mam maly problem... :)
Zaczalem pisac edytor map do gierki. I wszystko jest gitarka :)
Pomyslalem sobie ze skoro juz raz na potrzeby gry napisalem funkcjie odczytujaca mape to przeniose ja do edytora za pomoca Ctrl+C, Ctrl+V
Ale nie wiem czemu kompilator wyrzuca mi blad :(
To moze pokaze o czym mowa:
bool Mapa::LoadMap(const char *map)
{
bool ok;

HANDLE file = CreateFile(map, FILE_READ_DATA, FILE_SHARE_READ, 0, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);
ok = (file != INVALID_HANDLE_VALUE);
......

}
Cytat: pan kompilator
Error C2664: 'CreateFileW' : cannot convert parameter 1 from 'const char *' to 'LPCWSTR'

Najsmieszniejsze ze w grze jest identycznie ! Dokladnie ten sam kod i tam kompiluje sie bez problemowo.

Jest to aplikacja pod konsole (SDL+OGL).
Kompilator: MVS 2005


Pzdr.

Offline Mr. Spam

  • Miłośnik przetworów mięsnych

spax

  • Gość
# Marzec 08, 2006, 13:55:02
W projekcie masz włączoną obsługę unikodu a w WinAPI wszystkie funkcje operujące na napisach to makra rozwijane w funkcje działające na wchar_t * lub char * w zależności od ustawień (strasznie chory pomysł). Albo wyłącz unikod albo zaznajom się z makrem _T() i pokrewnymi.

Offline HellCat

  • Użytkownik

# Marzec 08, 2006, 18:12:16
Tylko dziwne, ze dwa takie same (wygenerowane przez MSV 2005) projekty i w jednym jest problem a w drugim nie :|

echh

//EDIT
Wylaczylem
Use UNICODE Responde Files na No
I dalej to samo :(
« Ostatnia zmiana: Marzec 08, 2006, 18:26:24 wysłana przez HellCat »

spax

  • Gość
# Marzec 08, 2006, 18:35:19
Raczej jest to inna opcja w projekcie. Niestety dokładnie Ci nie podam jaka - nie używam MSVC (ani nawet Windows ;D). W ostateczności ustaw odpowiednie definicje dla preprocesora (jakie? use google luke).

Sądząc po [1] pewnie to będzie w okolicy Properties | General | Character Set.

[1] http://www.wxwidgets.org/wiki/index.php/MSVC_.NET_Setup_Guide

// edit
No proszę (odnośnie wiadomości poniżej), czyli ja z google a bez MSVC znalazłem opcję szybciej niż Ty mając środowisko przed oczami. Shame on you HellCat!

// edit
Poprawiona literówka w nicku.
« Ostatnia zmiana: Marzec 08, 2006, 19:05:30 wysłana przez bies »

spax

  • Gość
# Marzec 08, 2006, 18:42:37
ehh...

General -> Character set = Not set.

pozdro
spax.

Offline HellCat

  • Użytkownik

# Marzec 08, 2006, 19:02:21

No proszę (odnośnie wiadomości poniżej), czyli ja z google a bez MSVC znalazłem opcję szybciej niż Ty mając środowisko przed oczami. Shame on you HellCal!


Znalzles szybciej bo ja sie zdenerwowalem i poszedlem sie przejsc z psem i do piero teraz sie znowu za to biore...

Ps. Tam jest t a nie l ;)

Pzdr & thx