Predmet:Windows api
Windows se sastoji od puno funkcija ciju glavnicu cini Windows API (Application Programming Interface). Windows API je ogromna kolekcija veoma korisnih funkcija koje se nalaze u samom Windowsu i dostupne su svim programima pisanim za Windows. Sve te funkcije se u stvari nalaze u nekoliko DLL modula kao na primer u kernel32.dll, user32.dll ili gdi32.dll-u. Kernel 32 dll sadrzi API funkcije koje se koriste u radu sa memorijom i procesima. User32.dll se bavi korisnickim interfejsom vaseg programa dok se Gdi32.dll koristi za rad sa grafikom. Postoji jos DLL-ova sto sem ova glavna tri i sve ih mozete koristiti ako imate dovoljno informacija o zeljenim API funkcijama.
Windows programi se dinamicki povezuju sa ovim DLL-ovima sto znaci da se sam kod ovih funkcija ne ukljucuje u kod vaseg EXEa po njegovom stvaranju. Da bi program znao gde moze da nadje zeljene API funkcije za vreme njegovog izvrsavanja, morate da u njega ukljucite i izvesne informacije. Te iformacije su biblioteke, zvane Import Libraries. Ako ne vezete program sa odgovarajucim bibliotekama on nece moci da locira API funkcije i samim tim nece biti operativan.
Kada je Windows program ucitan u memoriju Windows cita informacije smestene u programu. Te informacije izmedju ostalog obuhvataju imena API funkcija koje program poziva kao i DLL kome te funkcije pripadaju. Kada Windows pronadje te informacije on onda ucita te DLL-ove i "popravi" sve reference ka tim funkcijama tako da kada program pozove neku od njih tok ode pravo do mesta u memoriji gde se nalazi odredjena funkcija.
Postoje dve kategorije API funkcija: Jedna je ANSI dok je druga UNICODE. Imena API funkcija pisanih za ANSI se zavrsavaju sa "A", na primer, MessageBoxA, dok se umena UNICODE funkcija zavrsavaju sa "W" (skraceno od "Wide Char"). Windows 95 je baziran na ANSI standardu dok je Windows NT na UNICODEu.
Mi smo uglavnom upoznati sa ANSI stringovima koji su uvek jedan skup karaktera okoncan sa jednom NULL karakterom. ANSI karakter zauzima samo jeda bajt. Dok je ANSI dovoljan za Evropske jezike on ipak ne moze da obuhvati i nekoliko istocnjackih jezika koji sadrze po nekoliko stotina razlicitih karaktera. Iz tog razloga je na scenu stupio UNICODE ciji je karakter velicine dva bajta i omogucava nam da imamo do 65536 jedinstvenih karaktera.
U vecini slucajeva cete koristiti odgovarajuce "include" fajlove koji ce da odradjuju koje verzije API funkcija cete koristiti u zavisnosti za koju platformu pisete program tako da se sve te API funkcije sa A i W zavrsetcima mozete pozivati bez tih dodatnih karaktera, na primer MessageBoxA mozete pozivati kao MessageBox.
Podrska samo putem foruma, jer samo tako i ostali imaju koristi od toga.