c ++ - CRT og WIN32 API

Indlæg af Hanne Mølgaard Plasc

Problem



Hej,


Jeg undrer mig under vinduer, hvor CRT lib bruges. I hver dll danner win32 API? Kun ved software udviklet under visuel studio?


Med andre ord, er Windows OS udført malloc, skriv/læs på filer og så videre ved at bruge andre ting end CRT?


Tak

Bedste reference


C-runtime (i tilfælde af Visual Studio 2010 msvcr100.dll) indeholder implementeringen af ​​C-standardbibliotekets funktioner.


C-runtime implementeres på en platformspecifik måde, og i Windows-tilfælde bruger den funktioner fra kernel32.dll (en del af Win32 API) til at udføre sine opgaver.


Du kan kigge på de eksporterede og importerede funktioner og DLL afhængigheder ved hjælp af Dependency Walker. [2]

Andre referencer 1


Jeg har ingen idé om, hvad du ønskede at spørge i dit første spørgsmål. Omkring det andet dog: CRT er ikke Windows-specifikt, men VS-specifikt. Dine C-programmer, som du kompilerer med VS, bruger MSVCRTxx DLL'erne til at tilvejebringe (mest) C-biblioteksfunktioner. Til gengæld vil C-bibliotekets funktioner bruge WINAPI til at gøre faktiske ting. WINAPI er det sidste lag, der snakker til operativsystemet.


Andre kompilatorer, som f.eks. G ++ i MINGW, bruger ikke MSVCRTxx DLL'erne, men har deres egne. I sidste ende vil det også bruge WINAPI. For eksempel vil malloc sandsynligvis kalde VirtualAlloc i enhver implementering. [3]