Navedite neke API funkcije koje cesto koristite.Uz nacin upotrebe i sto ih koristite :o
Koje API funkcije koristite
Zaključano
Zakačeno
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 :)
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?
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.
Potpis
When something is hard to do, then it's not worth doing.
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:
Naravno ovo je jedan od nacina da se uveze funkcija iz dll-a (staticki nacin). Postoji i dinamicki ali to je druga prica.
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';
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.
Š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?
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.
I koji mi vi MSDN preporucujete da nadjem (verzija, mesec itd) ? Radim u Delphi 7...
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;
unit MyForm;
uses ... windows, ...;
implementation
procedure MyProc;
begin
ExitWindowsEx(EWX_FORCE, 0); // ovo je api funkcija za shutdown
end;
Potpis
When something is hard to do, then it's not worth doing.
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 ?
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?
Postoji li nova verzija Visual Studija ili ovog MSDN-a.I gde skinuti ovo drugo?
Citat:
I gde skinuti ovo drugo?
p2p
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
ms-help://MS.MSDNQTR.2003FEB.1033/dnfiles/html/msdn_serial.htm
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.
>
>
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).
>
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).