Cześć!
W winapi np setwindowtext ma wersje ANSI i UNICODE. W programie nie zamierzam używać polskich liter. Którą wersje mam wybrać?
Unicode.
Definiujesz dwa symbole przed <Windows.h>
(ten pierwszy sam też by wystarczył)
#define UNICODE
#define _UNICODE
#include <Windows.h>
i używasz SetWindowText
bez żadnej dodatkowej literki.
Przy #define UNICODE
wywołanie SetWindowText()
staje się makrem oznaczającym tak naprawdę SetWindowTextW()
.
Bez #define UNICODE
wywołanie SetWindowText()
wywołałoby SetWindowTextA()
.
Funkcja SetWindowTextA
jest dla kompatybilności wstecznej z programami pisanymi dla Windows 9x.
Jedyne co ona robi, to konwertuje podany tekst w ansi na unicode, i i tak wykonuje SetWindowTextW
.
Mam jeszcze jedno pytanie. Zapisuje std::wstring do pliku funkcją ofstream i plik nie ma prawidłowej zawartości tylko: 005C1318. Co z tym zrobić?
Mam taki kod:
std::ofstream plik;
std::wstring zmienna;
plik.open(TEXT("1.txt",std:in|std::out);
zmienna += L"wartość";
plik<<zmienna.c_str();
plik.close();
std::wstring zmienna=L"wartość";
std::ofstream plik("1.txt");
plik<<zmienna;
plik.close();
Dzięki za pomoc. Zamiast wstring użyłem string. Temat do zamknięcia.