28.01.2013 Views

1. Procese Windows; comunicaţii prin pipe şi IPC 2

1. Procese Windows; comunicaţii prin pipe şi IPC 2

1. Procese Windows; comunicaţii prin pipe şi IPC 2

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

<strong>Procese</strong> <strong>Windows</strong>; <strong>comunicaţii</strong> <strong>prin</strong> <strong>pipe</strong> <strong>şi</strong> <strong>IPC</strong> - 5 -<br />

3. In spaţiul Project Name se scrie numele proiectului, în cazul nostru prim sau filtru.<br />

4. In spaţiul Location se trece locul în structura de directori, în care mediul î<strong>şi</strong> va dezvolta<br />

aplicaţia, de exemplu \Useri\florin. Aici, mediul creează un subdirector cu numele<br />

proiectului (în cazul nostru prim sau filtru).<br />

5. Se alege tipul de aplicaţie consolă dorit: An empty project, A simple application, A “Hello<br />

world!” application, An application that supports MFC. Considerăm că în acest exemplu<br />

am ales: A simple application.<br />

6. După Ok, se afişează un mesaj de informare, iar în subdirectorul din location sunt create<br />

subdirectoarele: SourceFiles, HeaderFiles <strong>şi</strong> ResourceFiles. De asemenea,<br />

este depus acolo un fi<strong>şi</strong>er ReadMe.txt în care se explică rolul fiecărui fi<strong>şi</strong>er sau<br />

director creat de mediu.<br />

7. Se selectează din mediu FileView, se expandează directorul cu numele proiectului, apoi<br />

subdirectorul SourceFiles în care se află un fi<strong>şi</strong>er cu numele proiectului <strong>şi</strong> tipul cpp.<br />

Acest fi<strong>şi</strong>er sursă conţine, gata generat, scheletul programului <strong>prin</strong>cipal (al funcţiei<br />

main). După un dublu click pe numele acestuia, el apare în fereastra de editare.<br />

8. Din acest moment programatorul poate să scrie efectiv conţinutul aplicaţiei sale, plecând<br />

de la scheletul furnizat de mediu.<br />

9. La terminare, meniul Build oferă, <strong>prin</strong>tre altele, posibilitatea de a compila sursa respectivă<br />

(Compile sau Ctrl+F7), respectiv să obţină un fi<strong>şi</strong>er exe (Build sau F7).<br />

10. Fi<strong>şi</strong>erul de tip exe obţinut este plasat în subdirectorul Debug al directorului cu numele<br />

proiectului. El poate fi lansat în execuţie din mediu sau dinafara lui, poate fi copiat în altă<br />

parte (cum l-am depus noi pe prim.exe în e:\florin) <strong>şi</strong> lansa de acolo, etc.<br />

<strong>1.</strong>2. Access la fi<strong>şi</strong>ere <strong>şi</strong> aşteptarea unor evenimente <strong>Windows</strong><br />

<strong>1.</strong>2.<strong>1.</strong> Funcţii de access la fi<strong>şi</strong>ere<br />

Descriem pe scurt prototipurile funcţiilor de lucru cu fi<strong>şi</strong>ere sub <strong>Windows</strong>. Pentru mai multe<br />

informatii legate de prototipurile acestor funcţii, se recomandă consultarea documentaţiei<br />

MSDN.<br />

HANDLE CreateFile (LPCTSTR numeFisier, DWORD acces,<br />

DWORD partajare, LPSECURITY_ATTRIBUTES descr_sec,<br />

DWORD mod_deschid, DWORD atributeFisier);<br />

numeFisier –numele fi<strong>şi</strong>erului care se va crea<br />

acces –modul de acces (în citire <strong>şi</strong>/sau scriere)<br />

partajare –modul de partajare a fi<strong>şi</strong>erului<br />

mod_deschid –modul de creare a fi<strong>şi</strong>erului<br />

atributeFisier –atribute fi<strong>şi</strong>er<br />

HFILE OpenFile ( LPCSTR numeFisier, LPOFSTRUCT lpBuf, UINT uActiune);<br />

numeFisier –numele fi<strong>şi</strong>erului care se va deschide<br />

lpBuf –pointer la o structură care reţine informaţii despre fi<strong>şi</strong>er<br />

uActiune –indică operaţia care se va efectua asupra fi<strong>şi</strong>erului<br />

BOOL WriteFile (HANDLE hFisier, LPCVOID lpBuf, DWORD nNrOctetiDeScris,<br />

LPDWORD lpNumarOctetiScrisi, LPOVERLAPPED lpStructIO);

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!