WINAPI-ANSI czy Unicode

0

Cześć!
W winapi np setwindowtext ma wersje ANSI i UNICODE. W programie nie zamierzam używać polskich liter. Którą wersje mam wybrać?

2

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.

0

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ć?

0

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();

0
std::wstring zmienna=L"wartość";
std::ofstream plik("1.txt");
plik<<zmienna;
plik.close();
0

Dzięki za pomoc. Zamiast wstring użyłem string. Temat do zamknięcia.

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