Jegyzet
Az oldalhoz való hozzáférés engedélyezést igényel. Próbálhatod be jelentkezni vagy könyvtárat váltani.
Az oldalhoz való hozzáférés engedélyezést igényel. Megpróbálhatod a könyvtár váltását.
A Windows SDK általános, Windows-kódlapés Unicode -verziókban függvény prototípusokat biztosít. A prototípusok windowsos kódlap-prototípusok vagy Unicode-prototípusok előállítására fordíthatók. Ebben a témakörben mindhárom prototípust tárgyaljuk, és a SetWindowTextfüggvénykódmintáival szemléltetjük.
Az alábbiakban egy általános prototípust mutatunk be.
BOOL SetWindowText(
HWND hwnd,
LPCTSTR lpText
);
A fejlécfájl a makróként implementált általános függvénynevet adja meg.
#ifdef UNICODE
#define SetWindowText SetWindowTextW
#else
#define SetWindowText SetWindowTextA
#endif // !UNICODE
Az előfeldolgozó kibontja a makrót a Windows-kódlapra vagy a Unicode-függvény nevére. Az "A" (ANSI) vagy a "W" (Unicode) betű szükség szerint az általános függvénynév végén lesz hozzáadva. A fejlécfájl ezután két konkrét prototípust biztosít, egyet a Windows kódlapjaihoz, egyet pedig a Unicode-hoz, ahogy az alábbi példákban is látható.
BOOL SetWindowTextA(
HWND hwnd,
LPCSTR lpText
);
BOOL SetWindowTextW(
HWND hwnd,
LPCWSTR lpText
);
A sztringekhez készült Windows-adattípusok magyarázata szerint az általános függvény prototípusa az LPCTSTR adattípust használja a szöveges paraméterhez. A Windows kódlap prototípusa azonban az LPCSTR típust használja, a Unicode-prototípus pedig az LPCWSTR-t.
A szöveges argumentumokkal rendelkező összes függvény esetében az alkalmazásoknak általában az általános függvény prototípusait kell használniuk. Ha egy alkalmazás a fejlécfájlok #include utasításai előtt vagy a fordítás során definiálja a "UNICODE"-t, az utasítások Unicode-függvényekké lesznek lefordítva.
Jegyzet
Az új Windows-alkalmazásoknak Unicode-ot kell használniuk a változatos kódlapok inkonzisztenciája és a honosítás megkönnyítése érdekében. Ezeket általános függvényekkel kell írni, és unicode-függvényekké kell alakítani a függvényeket. Azon kevés helyen, ahol egy alkalmazásnak 8 bites karakteradatokkal kell dolgoznia, explicit módon használhatja a Windows-kódlapok funkcióit.
Az alkalmazásnak mindig egy általános függvény prototípusát kell használnia az általános sztringgel és karaktertípusokkal. A nagybetűs "W" végződésű függvénynevek a Unicode-t, azaz széles karaktert, paramétereket veszik fel. Egyes függvények csak Unicode-verziókban léteznek, és csak a megfelelő adattípusokkal használhatók. Például LCIDToLocaleName és LocaleNameToLCID csak Unicode-verziókkal rendelkeznek.
Az egyes Unicode- és karakterkészletfüggvények referenciadokumentációjának Követelmények szakasza információkat nyújt a támogatott operációs rendszerek által implementált függvényverziókról. Ha egy "Unicode" kezdetű sort tartalmaz, a függvény külön Unicode- és Windows-kódlapverzióval rendelkezik.
Jegyzet
Ha egy függvény rendelkezik egy karaktersztring hosszparaméterével, a hosszt a sztring TCHAR-értékeinek számaként kell dokumentálni. Ez az adattípus a függvény Windows-kódlapverzióinak bájtjára vagy a Unicode-verziók 16 bites szavaira vonatkozik. Az olyan függvények azonban, amelyek nem beírt memóriablokkokra, például a GlobalAlloc függvényre mutató mutatót igényelnek vagy adnak vissza, általában bájtban méretezhetők, függetlenül a használt prototípustól. Ha a nem beírt memória egy sztringhez van osztva, az alkalmazásnak meg kell szoroznia a karakterek számát a sizeof(TCHAR) karakterekkel. További információ: Általános adattípusok használata.
Kapcsolódó témakörök