27. august 2002 - 17:53Der er
2 kommentarer og 2 løsninger
code generation?
Hvis man i vc++ går ind under setting for et projekt og trykker på c++ tab'en og vælger katagorien code generation så finder man en listboks med nogen muligheder kaldet Use runtime libery. - Hvad betyder de forskellige muligheder og hvad bruges de til ?
Jyske Bank er rykket ind i Glaskuben på Kalvebod Brygge, et markant byggeri i hjertet af København. Knap 1.000 arbejder her, heraf 200 i IT, med nye rammer for samarbejde, innovation og udvikling.
single-threaded: komponenter er ikke nødvendigvis threadsafe multithreaded: threadsafe DLL: der linkes statisk med MSVCRT.LIB debug: der anvendes debug version af MSVCRT
Use Runtime Library (RTL) - Det betyder om dit program må anvende DLL'er med den faktisk kode til de standard funktioner du har anvendt i dit program eller ej. Hvis man siger ja til dette, bliver programmets .exe fil mindre, men tilgengæld skal du så også give dem der skal bruge programmet de DLL'er som hører til RTL'et.
Normalt fungere det sådan at hvis du siger NEJ, så bliver standard koden linket med ind i dit program, dvs. din .exe fil bliver større, men du kan så også nøjes med kun at give denne ene fil, til dem der skal bruge programmet.
Forskellen på ovenstående RTL'er, er et spørgsmål om hvordan standard-funktionerne er konstrueret, og dermed hvilken type program der kan ancende dem.
Som jpk skriver (han kom indenom !), er single threaded RTL'en opbygget sådan at de enkelte standard funktioner IKKE kan køre samtidigt, f.eks. fordi to at funktionerne deler de samme interne variabler. Forestil dig f.eks. StrToInt og IntToStr funktionerne som er to sider af samme sag. Disse kunne man i en single-thread version implementere vha. fælles lokale variabler - f.eks. en string og en int. (myString, myInt) Hvis dit program ikke kører trådet, kan du heller ikke komme til at køre de to funktioner samtidigt - og så er implementeringen jo OK. MEN ... hvis nu dit program har to tråde, der anvender hver sin funktion på samme tid (og det vil de fkatisk godt kunne, selvom din PC'er kun har en CPU, fordi Window så deler tiden mellem de to tråde helt vilkårligt) så giver det jo en frygtelig masse ged.
At lave en funktion ThreadSafe kræver ofte nogle ekstra krumspring, og kræver derfor ekstra CPU-tid. Hvis man derfor ikke har brug for trådning, kan man få sit program til at køre hurtigere ved at vælge det rette RTL-version. (I de fleste programmer du og jeg laver, gør det sikkert ingen eller kun lille forskel, men i applikationer som f.eks. arbejder i realtid, eller behandler meget store mængder data -og dermed anvendes standard funktionen fra RTL'en ofte- kan det gøre en stor forskel.
(Og så ville jeg ønske der var en stavekontrol på eksperten, for hold da k... hvor der var mange "tyrkfjel" i det svar.)
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.