Hirdetés
-
IT café
Új hozzászólás Aktív témák
-
opr
nagyúr
Ezt ugy szoktak, hogy business logicon belul siman minden std::string, aztan van egy fuggvenyed, ami a konkret -esetunkben "system(valami fajta string)" hivast vegzi. Na, ez a fuggveny van ugy deklaralva, hogy elfogadja a sima std::stringet, aztan van ket lehetoseged:
headerben ott a szignatura, hogy "inline const makeTheSystemCall(std::string&);"
a) a cpp fileban meg fuggvenytorzson belul mittomen #ifdef OS_WIN aztan #ifdef OS_LINUX, stb.
b) a cpp fileban harom kulon konkret fuggveny van #ifdef-be rakva, nyilvan mindig csak az "aktiv", ami eppen van. Tehat van harom kulon fuggveny a harom OS-re. Szerintem ez a megoldas sokkal tisztabb, En igy szoktam. Tipuskonverziok, ha mondjuk a win-esnek valamiert a wchar-os moka kell, akkor itt, fuggvenyen belul tortennek, business logic marad mindenhol sima std::string.Ha visual studiot hasznalsz, akkor minden tamogatott OS kap egy kulon konfiguraciot, amikhez mindhez tartozik egy props file, ahol definialod az OS_VALAMI makrot, meg ha kell, include directory-kat meg stb-ket.
Ez a modszer azert jo, mert karbantartani is konnyu, ha valami platformspecifikus eltorik, az nem a programot tori el, csak a platformot, tesztelni is konnyu es atlathato is. Termeszetesen a platformspecifikus include-ok is ifdef blokkokban vannak. Plusz nagyon szepen elkulonul a buniess logic, ami igy alapbol esszeru kereteken belul platformfuggetlen, meg a platformfuggo rendszerhivasok.
"Programozó vagyok. Ez azt jelenti, hogy amit leírok, megtörténik." :D “The only valid measurement of code quality is What-The-F**ks/Minute.” - Robert Martin
Új hozzászólás Aktív témák
● olvasd el a téma összefoglalót!
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Cég: Axon Labs Kft.
Város: Budapest