17
“Rankenėlės” (Handles) ir duomenų tipai

“Rankenėlės” (Handles) ir duomenų tipai

  • Upload
    sabine

  • View
    33

  • Download
    0

Embed Size (px)

DESCRIPTION

“Rankenėlės” (Handles) ir duomenų tipai. Vengriškasis užrašymo būdas. - PowerPoint PPT Presentation

Citation preview

Page 1: “Rankenėlės” (Handles) ir duomenų tipai

“Rankenėlės” (Handles) ir duomenų tipai

Page 2: “Rankenėlės” (Handles) ir duomenų tipai

Vengriškasis užrašymo būdas

• Win32 API naudoja vengriškąjį užrašymo būdą. Tai reiškia, kad kintamojo vardas turės priešdėlį, nurodantį jo duomenų tipą. Pavyzdžiui, raidė “p” nurodo, kad kintamasis yra rodyklė (pointer), “lp” - “ilgoji” rodyklė (long pointer), kuri 32 bitų sistemoje yra ta pati rodyklė. Tai yra senųjų 16 bitų sistemų palikimas.

Page 3: “Rankenėlės” (Handles) ir duomenų tipai

LPVOID

• Rodyklė į nežinomo tipo objektą. ANSI-C standartas leidžia apsibrėžti daugybines rodykles kaip “void*” tipą.

• Win32 API funkcijos gali turėti argumentus paženklintus kaip “LPVOID reserved”. Niekada nenaudokite šio tipo duomenų programoje, nes jie yra arba priklausomi nuo dar nerealizuoto funkcionalumo, arba naudojami specifinėse programose. Šiam parametrui perduokite NULL reikšmę.

Page 4: “Rankenėlės” (Handles) ir duomenų tipai

DWORD, WORD, BYTE

• Šie duomenų tipai apibrėžti taip, kad jų ilgis būtų nepriklausomas nuo platformos.

• DWORD – 32 bitų ilgio be ženklo (unsigned)

• WORD – 16 bitų ilgio be ženklo

• BYTE – 8 bitų ilgio be ženklo

• QWORD – 64 bitų ilgio be ženklo

Page 5: “Rankenėlės” (Handles) ir duomenų tipai

BYTE “b”

WORD “w”

DWORD “dw”

QWORD “qw”

Page 6: “Rankenėlės” (Handles) ir duomenų tipai

Pavyzdys (1)

Page 7: “Rankenėlės” (Handles) ir duomenų tipai

Pavyzdys (2)

Page 8: “Rankenėlės” (Handles) ir duomenų tipai

LONG, INT, SHORT, CHAR

• Šie tipai nėra fiksuoto ilgio ir yra apsprendžiami tik nuo naudojamos “geležies”.

• LONG – žymimi “l”

• UNIT – žymimi “i” arba “ui”

• CHAR, UCHAR – žymimi “c” arba “uc”

Page 9: “Rankenėlės” (Handles) ir duomenų tipai

Pavyzdys (3)

Page 10: “Rankenėlės” (Handles) ir duomenų tipai

STR, LPSTR

• STR – simbolių eilutės su išskirta atmintimi. Žymima “sz” – simbolių eilutė užbaigta “0” (zero-terminated string)

• LPSTR – rodyklė į simbolių eilutę. Žymima “lpsz”. “sz” yra svarbi žymė, nes kai kurios eilutės nėra užbaigiamos “0”.

Page 11: “Rankenėlės” (Handles) ir duomenų tipai

TCHAR, TSTR, LPTSTR

• TCHAR – daugybinis simbolinis duomenų tipas. Jis gali saugoti arba 1-o baito ASCII simbolį, arba 2-jų baitų Unicode simbolį.

• TSTR – yra TCHAR simbolių eilutė

• LPTSTR – yra rodyklė į TSTR tipą.

Page 12: “Rankenėlės” (Handles) ir duomenų tipai

Pavyzdys (4)

Page 13: “Rankenėlės” (Handles) ir duomenų tipai

HANDLE

• Savo branduolyje Windows’ai saugo lentelę visų skirtingų objektų už kuriuos yra atsakingi. Langai, mygtukai, ikonos ir t.t., kiekvienas toks įrašas saugomas lentelėje yra susiejamas su identifikatoriumi, kuris vadinamas HANDLE. Šis identifikatorius yra apibrėžiamas kaip 32 bitų įrašas be ženklo antraštėje <windows.h> ir dažniausiai žymimas “h”.

Page 14: “Rankenėlės” (Handles) ir duomenų tipai

HWND

Šie tipai iš esmės taip pat yra “rankenėlės”.

• HWND – langų identifikatoriai skirti sekti objektams rodomiems ekrane. Komunikavimui su konkrečiu langu reikia turėti to lango identifikatoriaus kopiją. Dažniausiai žymimas “hwnd”.

Page 15: “Rankenėlės” (Handles) ir duomenų tipai

HINSTANCE

• HINSTANCE – programos egzemplioriaus identifikatorius. Kiekviena programa gauna savo identifikatorių tam, kad branduolys galėtų bendrauti su ja. Pavyzdžiui, norint sukurti naują langą, reikia perduoti programos HINSTANCE kintamąjį branduoliui, kad jis žinotų, kam priklauso naujas langas. Šis identifikatorius žymimas “h” ir, kadangi dažniausiai yra vienintelis, apibrėžiamas kaip:

Page 16: “Rankenėlės” (Handles) ir duomenų tipai

HMENU

• Jei programa turi slankųjį meniu, jis turės savo identifikatorių HMENU. Tam, kad rodyti meniu ar keisti jo turinį, reikia turėti priėjimą prie šio identifikatoriaus. Dažniausiai žymimas “h”.

Page 17: “Rankenėlės” (Handles) ir duomenų tipai

WPARAM, LPARAM

• Senais gerais 16 bitų laikais, parametrai langui buvo perduodami dviem formatais: WORD (16 bitų) ir LONG (32 bitų). Atitinkamai WPARAM yra 16 bitų, o LPARAM – 32 bitų. Šiais laikais abu parametrai yra 32 bitų ilgio, bet vardai liko kaip palikimas. Kadangi šie kintamieji yra daugybiniai jie yra keičiami į kitus duomenų tipus įskaitant rodykles ir DWORD.