1. MFC, ADO, ATL - folosite la un job in trecut + Windows API. Tot la un job mai vechi am folosit ObjectStore.
2. Qt / wxWidgets : mai mult Qt dupa ce licenta acestuia a devenit LGPL (Nokia intentioneaza sa foloseasca Qt ca principal framework pentru dezvoltarea aplicatiilor pe platforma Symbian ^4);
- boost library;
- STL;
- WTL (ptr dezvoltare de GUI care nu se doreste a fi cross-platform).
- DirectX 9
3. Bibliotecile pe care doresti sa le folosesti depind de tipul si de marimea proiectului. Daca GUI nu este foarte complex atunci poti adopta o solutie de tip WTL sau Windows API + propriile clase (recomand
http://www.relisoft.com/ pentru inspiratie). Daca doresti ca aplicatia sa fie cross-platform atunci Qt / wxWidgets ar fi o solutie (de retinut ca in Qt nu ai suport numai pentru GUI; frameworkul iti ofera suport si pentru networking, xml processing, sql - totul la costul unei solutii care se doreste a fi crosss-platform).
Pentru lucrul cu baze de date apelurile ODBC tind sa fie suficiente in majoritatea cazurilor (din nou depinde de complexitatea proiectelor, a interogarilor). Creearea unor clase proprii te-ar ajuta sa nu scrii mult cod repetitiv in cazul apelurilor ODBC. Poti considera si folosirea ADO ca si alternativa (desi nu mai este ceva la moda odata cu aparitia .net-ului ...).
Daca nu gasesti suport suficient in ceea ce-ti ofera API-ul nativ sau bibliotecile construite in jurul acestuia, solutia ar fi sa acorzi ceva timp pentru a-ti dezvolta un mic framework (depinde de proiectul si timpul pe care il ai la dispozitie; avantajele ar fi ca: 1.vei invata ceva; 2.scriind propriul tau cod se presupune ca-l vei intretine mai bine (teoretic cel putin

). Daca nu ai acest timp la dispozitie atunci incearca sa gasesti un framework (care sa fie recunoscut ca este bun !! altfel citind cod prost scris de altii ...) care sa vina si cu sursele (exemple WTL, ATL Server, poco c++). Restul inseamna inspiratie si transpiratie.