PDA

Prikaži potpunu verziju : Kako ISPRAVNO napraviti 64-bitnu aplikaciju?


Kostarum Rex Persia
19.12.2006, 0:13
Dakle, kako.

holodoc
19.12.2006, 0:18
Možeš li bar malo biti precizniji šta podrazumevaš pod ispravno napravljenom 64-bitnom aplikacijom? Na koji deo "pravljenja" te aplikacije misliš? Neku posebnu tehniku programiranju, kompajliranje, linkovanje,... :confused:

edit::offtopic: Da nisi kao Trekkie zaboravio da je naziv za "deep underground Klingon homeworld" u stvari "podrum Q'onoS-a" :D

Kostarum Rex Persia
19.12.2006, 2:39
Pa mislim kako se piše 64-bitna aplikacija sa svim potrebnim ASM optimizacijama za 64-bitni kod, a ne mislim na mešani 32-bitni i 64-bitni kod, kako koriste pojedini programeri.

Znači da je apsolutno svaki deo source koda optimizovan za 64 bita!

holodoc
19.12.2006, 3:31
Pa pazi, sad može da ti se učini malo smešnim ali veliki deo koda koji se koristi prilikom programiranja 64-bitnih aplikacija je apsolutno identičan kao i onaj koji se koristi za 32-bitne. Primera radi uzmi C ili C++. I jedan i drugi programski jezik koristi identičan kod za kontrolu toka(if, switch, while,...), menadžment memorije (osim delova koji su u C++-u direktno vezani za objektni model programiranja) i sl. Ono što i jedan i drugi jezik imaju ekstra ugrađeno u svojim bibliotekama a što se odnosi na direktnu podršku za računare sa 64-bitnom arhitekturom su funkcije koje su pisane specijalno da bi iskoristile samu arhitekturu. Primera radi u C-like jezicima imaš specijalne konverzione funkcije koje omogućavaju konverziju tipova podataka optimizovanu za 16-bitnu, 32-bitnu i 64-bitnu arhitekturu kao što su recimo "itoa" i "_i64toa", "atoa" i "_atoa64" koje su definisane u standardnim zaglavljima.

Ono na šta ti najverovatnije treba da obratiš pažnju jeste kompajler tj. programče koje je zaduženo da sve to prevede u formu koja će po mogućnosti maksimalno iskoristiti arhitekturu za koju je namenjen sam kod. Kompajler je taj koji će voditi računa o tome koju verziju "itoa" funkcije će da iskoristi odnosno ukoliko u opcijama čekiraš da se kompajliranje vrši 64-bitnom verzijom dobićeš kod isključivo namenjen takvoj arhitekturi odnosno maksimalno prilagođen da "impresionira" 64-bitni operativni sistem pod kojim će se izvršavati.

Obrati pažnju da je ovakav način rada mač sa dve oštrice. Punokrvi 64-bitni kod nećeš moći ni na koji način da izvršavaš na 32-bitnoj mašini pa je ponekad veoma korisno u sam kod (ili u toku kompajliranja) povesti računa o tome da aplikaciji daš bar šansu da se pošteno izvini korisniku zato što svrstava sistem na kome odbija da se izvrši u "obsolete" kategoriju :D

Andross
19.12.2006, 16:02
A jel moze to nekako da se uradi preko Dev-C++-a?

Oliver
23.12.2006, 2:46
Sa kompajlerom ili čime je već praviš koji omogućavaju pravljenje takvih aplikacija. Znači ako kompajler nije namenjen tome ništa od toga.
I da bi to sve radilo treba i 64bitni OS.
:icon_stud Moraš malo bolje da znaš šta možeš da napraviš sa time u čemu programiraš- koje su mogućnosti.
Ako to ne znaš, onda verovatno ne znaš ni koje su dobre strane 64 bitnog koda. to nije samo uključ/isključ = brže radi