( Nyosigomboc | 2024. 07. 03., sze – 14:15 )

Az MFC egy gany korbetakolas a Winapis GDI-hoz. Annak a legtobb korlatjat magaval hozza.

Fejlesztettem ezelott ugy 15 evvel egy MFC-ben elkezdett csodat (nem rajtam mult a valasztas, kesobb kapcsolodtam be). A program lenyege annyi volt, hogy halozati eszkozok adott parametereit meri, es jeleniti meg egy sima GUI feluleten (stringek, mellette szamok, semmi csicsa). A halozati eszkoznek van valami azonositoja - tipussal. A tipusbol elokeresi a neki megfelelo xml-t, amiben benne van, hogy az adott kutyunek milyen parameterei vannak, ezek hol vannak a memoriaban, es mi az ertelmuk, majd ennek megfeleloen dinamikusan generalodik a GUI (az XML forditaskor generalodik a forrasban levo makrok alapjan).

Miutan az MFC a GDI-re epul, ezert a GDI descriptorokat eszi. Ez egy globalis eroforras, ami - ha jol emlekszem - 10 bites, szoval 1024 darab van futo rendszerenkent, es ebbol egy ilyen label+szam tobbet is megeszik. Amikor elfogy, a widgetek eltunedeznek, nem veletlenul tert at mindenki arra, hogy inkabb korbetakolja. Ez amugy latszik is, ha pl. egy - szinten korabeli - Delphis programot inditasz el, ott a GDI resource-ok szama nem nagyon valtozik (talan az ablaknak kell 1-2, de nem sok). A bongeszok - sok leirot igenyelnenek - szinten valami sajatot vagy egyeb libet hasznalnak, es nagyjabol minden mas is. Egyszeruen annyira szar koncepcio, hogy senki nem hasznalta mar akkor sem, amikor meg nem volt teljesen elavult (15 eve mar az volt). Ha egyetlen halozati eszkoznek 2-300 leiro kell (akkor is, ha a hatterben fut a program), gondolhatod mennyire jo, ha az egesz windowsban 1024-re van korlatozva. :D