[ BIG FOOT @ 16.09.2004. 20:46 ] @
Navedite neke API funkcije koje cesto koristite.Uz nacin upotrebe i sto ih koristite :o
[ morlic @ 16.09.2004. 22:50 ] @
Kakvo ti je to pa sad pitanje? Sta mislis, neko ima omiljenu API funkciju pa je koristi svaki cas? Postavi konkretno pitanje za neku API funkciju pa da odgovaramo :)
[ ADRENALIN @ 23.10.2004. 00:57 ] @
Evo ja konkretno.Šta su API funkcije, mislim znam definiciju nego kako se koriste, d li su drugačije na različitim Windowsima.Kako se ubacuju recimo u Visual C++.Da li je to komplikovano ili ne.Da li pomoću njih možemo otvoriti portove računara?
[ sasas @ 23.10.2004. 22:06 ] @
Citat:
morlic: Kakvo ti je to pa sad pitanje? Sta mislis, neko ima omiljenu API funkciju pa je koristi svaki cas?


Zasto da ne? Ima stvarno u APIju kamara bisera, beskorisnih ili 'cudno' napisanih funkcija/struktura, koje bi vredelo prikupiti na jednom mestu. recimo FILETIME:

as known, Windows stores time stamps in FILETIME format, a
8-Byte-Value. FILETIME format is the number of ticks, in 100ns
increments, since 00:00 1 Jan, 1601 (UTC).

Strasno me zanima na koji nacin su ustanovili 1601. kao godinu od koje ce poceti brojanje?

ss.
[ morlic @ 24.10.2004. 00:29 ] @
To jedno mesto se zove MSDN i u njemu imas gomilu podataka (par giga) koje se ticu windows API-a, a i sire od toga. Ko god zeli da se zeza sa Windows API-jem bez MSDN-a bolje da ne krece.

Inace API je skracenica za Application Programming Interface i predstavlja nacin da obicne aplikacije pristupe mnogobrojnim windows funkcijama (takoreci servisima) razlicitih namena. Radi se uglavnom o funkcijama koje se nalaze unutar DLL biblioteka pisanih na C-u. U novije vreme pristup nekim stvarima se moze ostvariti i na druge nacine, npr. preko COM-a.

Kada napises obican windows program u Delphi-u, makar sa jednom formom, on u pozadini koristi najmanje nekoliko desetina API funkcija za da bi radio. Ovih dana se na forumu pojavilo i pitanje za PostMessage funkciju. I ona predstavlja deo Win API-a.

Razliciti Windows sistemi imaju i donekle razlicite API-je. Recimo Windows 2K ili XP imaju API funkcije za rad sa NTFS fajl sistemima dok obican Win9x sistem to nema. Razlika ima mnogo, ali ima i mnogo istih, inace programi ne bi bili prenosivi izmedju razlicitih Windows-a.

Da bi se neka API funkcija koristila u programu mora da se napravi import deklaracija sa nazivom funkcije i dll biblioteke u kojoj se nalazi:

Code:

interface

function PostMessage(hWnd: HWND; Msg: UINT; wParam: WPARAM; lParam: LPARAM): BOOL; stdcall;

implementation

function PostMessage; external 'user32.dll' name 'PostMessageA';


Naravno ovo je jedan od nacina da se uveze funkcija iz dll-a (staticki nacin). Postoji i dinamicki ali to je druga prica.
[ ADRENALIN @ 24.10.2004. 03:21 ] @
Šta je MSDN i gde mogu to da nađem?Pretpostavljam da je to pomoć.Ja sam to dobio na dva diska uz Visual C++ 6 ali tamo nisam našao ništa o API funkcijama.Jel To To?
[ morlic @ 24.10.2004. 11:23 ] @
MSDN je Microsoft Developers Network i moze se naci uz Visual Studio, ili odvojeno. Predstavlja bazu podataka za programere na prvom mestu, i sadrzi gomilu informacija, od windows API-a do resavanja problema vezanih za MS proizvode. MSDN postoji u cini mi se nekoliko varijanti pa je pitanje koju ti imas. U svakom slucaju nije lose imati punu varijantu. Takodje je bitno od kada je odredjeni MSDN jer MS redovno izbacuje novije verzije.
[ reiser @ 24.10.2004. 12:37 ] @
I koji mi vi MSDN preporucujete da nadjem (verzija, mesec itd) ? Radim u Delphi 7...
[ sasas @ 24.10.2004. 14:42 ] @
Citat:
Marko Paunovic: I koji mi vi MSDN preporucujete da nadjem (verzija, mesec itd) ? Radim u Delphi 7...


Za pocetak, mozda ti je najbolji help koji dolazi uz Delphi. Ides na help meni -> Windows SDK, i to je to.

Mnogo funkcija iz APIja je vec importovano kroz unit windows. Te se mogu koristiti bez importovanja o kom je morlic pisao.

dakle samo ovako:

Code:

unit MyForm;

uses ... windows, ...;

implementation

procedure MyProc;
begin
  ExitWindowsEx(EWX_FORCE, 0); // ovo je api funkcija za shutdown
end;
[ reiser @ 24.10.2004. 14:54 ] @
Ovako, ja imam MSDN 6.0 i on mi je za sada dovoljan... Ali, uskoro cu imati priliku da downloadujem dosta giga sa net-a i zato vas pitam koji MSDN mi preporucujete da skinem ?
[ ADRENALIN @ 24.10.2004. 15:15 ] @
Ja imam dva diska MSDN-a koja idu uz Visual Studio 6.0.Ovaj studio je izgleda izašao pre XP-a pa nikako nisam mogao da nađem NIJEDU funkciju za direktan pristup portu, ne mislim direktan u smislu da šaljem pravi hexsa adresu kao 0x378 nego da jednostavno otvorim instalirani port recimo LTP.Kako se ovo radi u Visual Studiu 6.0 sa C++ -om?Da li u toj verziji ima API za to?
Postoji li nova verzija Visual Studija ili ovog MSDN-a.I gde skinuti ovo drugo?
[ reiser @ 24.10.2004. 16:03 ] @
Citat:
I gde skinuti ovo drugo?


p2p
[ morlic @ 24.10.2004. 17:40 ] @
Pristup portovima je smisljen daleko pre WinXP-a. Koriste se verovao ili ne iste funkcije kao za rad sa fajlovima uz naravno neke dodatke kao sto je asinhroni rad, sinhronizacija, itd. (mada i sa fajlovima postoji as. rad kad se prisetim :). Nema direktnog rada sa portovima kao u vreme DOS-a. U MSDN-u 2003 imas i citav jedan clanak na tu temu:

ms-help://MS.MSDNQTR.2003FEB.1033/dnfiles/html/msdn_serial.htm
[ ADRENALIN @ 24.10.2004. 22:45 ] @
Nisam to mislio nego kod XP-a je zabranjen direktan pristu portovima, u Visual Studiu 6.0 nema govora o tome jer je zastarelo u odnosu na XP.
[ nikola.j @ 24.10.2004. 22:56 ] @
>
>

Još u NT4 (a verovatno i NT 3.nešto, ali to je pre mog vremena:) je bilo
"zabranjeno" pristupati bilo kom hardveru direktno. Postoji nešto što se
zove HAL (Hardware Abstraction Layer).