Re[5]: А нужен ли нам CRT?
От: Шахтер Интернет  
Дата: 29.01.04 03:20
Оценка: +1
Здравствуйте, _nn_, Вы писали:

__>Здравствуйте, Аноним, Вы писали:


__>>>Было бы неплохо если бы CRT ,которая идет в студии, состояла из нескольких частей :

__>>>например математические функции, работа со строками , работа с плавающей запятой и т.д.
__>>>Т.е. в программы можно было бы добавить ту часть которая нужна , а не тащить все, из которого половина не используется.

А>>Если линковать динамически, то тебе не пофиг?

__>Это почему ?
__>Можно например вместо msvcr71.dll ,которая берет 300кб взять ,например, math.dll , которая берет в несколько раз меньше.

Что значит, берет? Куда берет? В виндах ни exe-шник, ни dll-ки не грузятся в память а проектируются. Единственный расход памяти -- на таблицу страниц в ядре, да и то, если я не ошибаюсь, в XP и это дело пофиксили.

__>Но если есть несколько программ , то тогда действительно без разницы будет.

А>>А если статически, то, может быть, линкер делает какие-то оптимизации? Выкидывает ненужное?

Выкидывает. Кроме некоторго ядра, которое в последнем VC небольшое.

__>А это нужно проверить.


Легко. Ну вот у меня при линковке со статической библой голой функции main() получается exe-шник 22016, а при линковке с динамической -- 3584.

Вот map файл для статической библы. Изучайте на здоровье.

Test

Timestamp is 4018796c (Wed Jan 28 22:09:32 2004)

Preferred load address is 00400000

Start Length Name Class
0001:00000000 00003b48H .text CODE
0002:00000000 000000c4H .idata$5 DATA
0002:000000d0 00000c40H .rdata DATA
0002:00000d10 00000046H .rdata$debug DATA
0002:00000d60 00000008H .rdata$sxdata DATA
0002:00000d68 00000004H .rtc$IAA DATA
0002:00000d6c 00000004H .rtc$IZZ DATA
0002:00000d70 00000004H .rtc$TAA DATA
0002:00000d74 00000004H .rtc$TZZ DATA
0002:00000d78 00000014H .idata$2 DATA
0002:00000d8c 00000014H .idata$3 DATA
0002:00000da0 000000c4H .idata$4 DATA
0002:00000e64 00000366H .idata$6 DATA
0002:000011ca 00000000H .edata DATA
0003:00000000 00000004H .CRT$XCA DATA
0003:00000004 00000004H .CRT$XCAA DATA
0003:00000008 00000004H .CRT$XCZ DATA
0003:0000000c 00000004H .CRT$XIA DATA
0003:00000010 00000008H .CRT$XIC DATA
0003:00000018 00000004H .CRT$XIZ DATA
0003:0000001c 00000004H .CRT$XPA DATA
0003:00000020 00000004H .CRT$XPZ DATA
0003:00000024 00000004H .CRT$XTA DATA
0003:00000028 00000004H .CRT$XTZ DATA
0003:00000030 00000274H .data DATA
0003:000002c0 00000598H .bss DATA

Address Publics by Value Rva+Base Lib:Object

0000:00000000 __except_list 00000000 <absolute>
0000:00000002 ___safe_se_handler_count 00000002 <absolute>
0001:00000000 _main 00401000 f main.obj
0001:00000003 __amsg_exit 00401003 f LIBC:crt0.obj
0001:00000028 _mainCRTStartup 00401028 f LIBC:crt0.obj
0001:000001ef ___crtExitProcess 004011ef f LIBC:crt0dat.obj
0001:0000021f __cinit 0040121f f LIBC:crt0dat.obj
0001:0000034a _exit 0040134a f LIBC:crt0dat.obj
0001:0000035b __exit 0040135b f LIBC:crt0dat.obj
0001:0000036c __cexit 0040136c f LIBC:crt0dat.obj
0001:0000037b __c_exit 0040137b f LIBC:crt0dat.obj
0001:0000038a __NMSG_WRITE 0040138a f LIBC:crt0msg.obj
0001:00000501 __FF_MSGBANNER 00401501 f LIBC:crt0msg.obj
0001:0000053a __XcptFilter 0040153a f LIBC:winxfltr.obj
0001:000006ab __setenvp 004016ab f LIBC:stdenvp.obj
0001:000008de __setargv 004018de f LIBC:stdargv.obj
0001:00000980 ___crtGetEnvironmentStringsA 00401980 f LIBC:a_env.obj
0001:00000aa2 __ioinit 00401aa2 f LIBC:ioinit.obj
0001:00000c4d __RTC_Initialize 00401c4d f LIBC:initsect.obj
0001:00000c91 __RTC_Terminate 00401c91 f LIBC:initsect.obj
0001:00000cd5 ___heap_select 00401cd5 f LIBC:heapinit.obj
0001:00000cef __heap_init 00401cef f LIBC:heapinit.obj
0001:00000d40 __SEH_prolog 00401d40 f LIBC:sehprolg.obj
0001:00000d7b __SEH_epilog 00401d7b f LIBC:sehprolg.obj
0001:00000d94 __except_handler3 00401d94 f LIBC:exsup3.obj
0001:00000e7a __seh_longjmp_unwind@4 00401e7a f LIBC:exsup3.obj
0001:00000ea0 __alloca_probe 00401ea0 LIBC:chkstk.obj
0001:00000ea0 __chkstk 00401ea0 f LIBC:chkstk.obj
0001:00000edd __onexit 00401edd f LIBC:onexit.obj
0001:00000f5f _atexit 00401f5f f LIBC:onexit.obj
0001:00000f71 ___onexitinit 00401f71 f LIBC:onexit.obj
0001:00000f99 ___crtMessageBoxA 00401f99 f LIBC:crtmbox.obj
0001:000010a0 _strcpy 004020a0 f LIBC:strcat.obj
0001:000010b0 _strcat 004020b0 f LIBC:strcat.obj
0001:000011a0 _strncpy 004021a0 f LIBC:strncpy.obj
0001:000012d0 _strlen 004022d0 f LIBC:strlen.obj
0001:0000138c @__security_check_cookie@4 0040238c f LIBC:secchk.obj
0001:0000139a _free 0040239a f LIBC:free.obj
0001:000013d2 __heap_alloc 004023d2 f LIBC:malloc.obj
0001:00001418 __nh_malloc 00402418 f LIBC:malloc.obj
0001:00001444 _malloc 00402444 f LIBC:malloc.obj
0001:0000163a __setmbcp 0040263a f LIBC:mbctype.obj
0001:00001820 ___initmbctable 00402820 f LIBC:mbctype.obj
0001:00001840 _memcpy 00402840 f LIBC:memcpy.obj
0001:00001b7d ___sbh_heap_init 00402b7d f LIBC:sbheap.obj
0001:00001bc5 ___sbh_find_block 00402bc5 f LIBC:sbheap.obj
0001:00001bf0 ___sbh_free_block 00402bf0 f LIBC:sbheap.obj
0001:00001f08 ___sbh_alloc_new_region 00402f08 f LIBC:sbheap.obj
0001:00001fbf ___sbh_alloc_new_group 00402fbf f LIBC:sbheap.obj
0001:000020c5 ___sbh_resize_block 004030c5 f LIBC:sbheap.obj
0001:000023a4 ___sbh_alloc_block 004033a4 f LIBC:sbheap.obj
0001:000026a0 __global_unwind2 004036a0 f LIBC:exsup.obj
0001:000026e2 __local_unwind2 004036e2 f LIBC:exsup.obj
0001:0000273a __NLG_Return2 0040373a LIBC:exsup.obj
0001:0000274a __abnormal_termination 0040374a f LIBC:exsup.obj
0001:0000276d __NLG_Notify1 0040376d f LIBC:exsup.obj
0001:00002776 __NLG_Notify 00403776 f LIBC:exsup.obj
0001:00002789 __NLG_Dispatch 00403789 LIBC:exsup.obj
0001:0000278e __ValidateEH3RN 0040378e f LIBC:eh3valid.obj
0001:000029b7 _realloc 004039b7 f LIBC:realloc.obj
0001:00002b19 __msize 00403b19 f LIBC:msize.obj
0001:00002b51 ___security_init_cookie 00403b51 f LIBC:seccinit.obj
0001:00002bb7 ___security_error_handler 00403bb7 f LIBC:secfail.obj
0001:00002cff __callnewh 00403cff f LIBC:handler.obj
0001:00002d1a ___crtLCMapStringA 00403d1a f LIBC:a_map.obj
0001:000030d6 ___crtGetStringTypeA 004040d6 f LIBC:a_str.obj
0001:00003290 _memmove 00404290 f LIBC:memmove.obj
0001:000035d0 _memset 004045d0 f LIBC:memset.obj
0001:00003630 ___ansicp 00404630 f LIBC:convrtcp.obj
0001:00003673 ___convertcp 00404673 f LIBC:convrtcp.obj
0001:0000383c __resetstkoflw 0040483c f LIBC:resetstk.obj
0001:0000391f _calloc 0040491f f LIBC:calloc.obj
0001:0000399a _atol 0040499a f LIBC:atox.obj
0001:000039f2 __ismbcspace 004049f2 f LIBC:ismbspc.obj
0001:00003a90 __allmul 00404a90 f LIBC:llmul.obj
0001:00003ac4 __isctype 00404ac4 f LIBC:isctype.obj
0001:00003b42 _RtlUnwind@16 00404b42 f kernel32:KERNEL32.dll
0002:00000000 __imp__GetModuleHandleA@4 00405000 kernel32:KERNEL32.dll
0002:00000004 __imp__GetCommandLineA@0 00405004 kernel32:KERNEL32.dll
0002:00000008 __imp__GetVersionExA@4 00405008 kernel32:KERNEL32.dll
0002:0000000c __imp__ExitProcess@4 0040500c kernel32:KERNEL32.dll
0002:00000010 __imp__GetProcAddress@8 00405010 kernel32:KERNEL32.dll
0002:00000014 __imp__TerminateProcess@8 00405014 kernel32:KERNEL32.dll
0002:00000018 __imp__GetCurrentProcess@0 00405018 kernel32:KERNEL32.dll
0002:0000001c __imp__WriteFile@20 0040501c kernel32:KERNEL32.dll
0002:00000020 __imp__GetStdHandle@4 00405020 kernel32:KERNEL32.dll
0002:00000024 __imp__GetModuleFileNameA@12 00405024 kernel32:KERNEL32.dll
0002:00000028 __imp__UnhandledExceptionFilter@4 00405028 kernel32:KERNEL32.dll
0002:0000002c __imp__FreeEnvironmentStringsA@4 0040502c kernel32:KERNEL32.dll
0002:00000030 __imp__GetEnvironmentStrings@0 00405030 kernel32:KERNEL32.dll
0002:00000034 __imp__FreeEnvironmentStringsW@4 00405034 kernel32:KERNEL32.dll
0002:00000038 __imp__WideCharToMultiByte@32 00405038 kernel32:KERNEL32.dll
0002:0000003c __imp__GetLastError@0 0040503c kernel32:KERNEL32.dll
0002:00000040 __imp__GetEnvironmentStringsW@0 00405040 kernel32:KERNEL32.dll
0002:00000044 __imp__SetHandleCount@4 00405044 kernel32:KERNEL32.dll
0002:00000048 __imp__GetFileType@4 00405048 kernel32:KERNEL32.dll
0002:0000004c __imp__GetStartupInfoA@4 0040504c kernel32:KERNEL32.dll
0002:00000050 __imp__HeapDestroy@4 00405050 kernel32:KERNEL32.dll
0002:00000054 __imp__HeapCreate@12 00405054 kernel32:KERNEL32.dll
0002:00000058 __imp__VirtualFree@12 00405058 kernel32:KERNEL32.dll
0002:0000005c __imp__HeapFree@12 0040505c kernel32:KERNEL32.dll
0002:00000060 __imp__LoadLibraryA@4 00405060 kernel32:KERNEL32.dll
0002:00000064 __imp__HeapAlloc@12 00405064 kernel32:KERNEL32.dll
0002:00000068 __imp__GetACP@0 00405068 kernel32:KERNEL32.dll
0002:0000006c __imp__GetOEMCP@0 0040506c kernel32:KERNEL32.dll
0002:00000070 __imp__GetCPInfo@8 00405070 kernel32:KERNEL32.dll
0002:00000074 __imp__VirtualAlloc@16 00405074 kernel32:KERNEL32.dll
0002:00000078 __imp__HeapReAlloc@16 00405078 kernel32:KERNEL32.dll
0002:0000007c __imp__RtlUnwind@16 0040507c kernel32:KERNEL32.dll
0002:00000080 __imp__InterlockedExchange@8 00405080 kernel32:KERNEL32.dll
0002:00000084 __imp__VirtualQuery@12 00405084 kernel32:KERNEL32.dll
0002:00000088 __imp__HeapSize@12 00405088 kernel32:KERNEL32.dll
0002:0000008c __imp__QueryPerformanceCounter@4 0040508c kernel32:KERNEL32.dll
0002:00000090 __imp__GetTickCount@0 00405090 kernel32:KERNEL32.dll
0002:00000094 __imp__GetCurrentThreadId@0 00405094 kernel32:KERNEL32.dll
0002:00000098 __imp__GetCurrentProcessId@0 00405098 kernel32:KERNEL32.dll
0002:0000009c __imp__GetSystemTimeAsFileTime@4 0040509c kernel32:KERNEL32.dll
0002:000000a0 __imp__LCMapStringA@24 004050a0 kernel32:KERNEL32.dll
0002:000000a4 __imp__MultiByteToWideChar@24 004050a4 kernel32:KERNEL32.dll
0002:000000a8 __imp__LCMapStringW@24 004050a8 kernel32:KERNEL32.dll
0002:000000ac __imp__GetStringTypeA@20 004050ac kernel32:KERNEL32.dll
0002:000000b0 __imp__GetStringTypeW@16 004050b0 kernel32:KERNEL32.dll
0002:000000b4 __imp__GetLocaleInfoA@16 004050b4 kernel32:KERNEL32.dll
0002:000000b8 __imp__VirtualProtect@16 004050b8 kernel32:KERNEL32.dll
0002:000000bc __imp__GetSystemInfo@4 004050bc kernel32:KERNEL32.dll
0002:000000c0 \177KERNEL32_NULL_THUNK_DATA 004050c0 kernel32:KERNEL32.dll
0002:000000fc ??_C@_0P@MIGLKIOC@CorExitProcess?$AA@ 004050fc LIBC:crt0dat.obj
0002:0000010c ??_C@_0M@MBOPBNBK@mscoree?4dll?$AA@ 0040510c LIBC:crt0dat.obj
0002:00000118 ??_C@_0P@GGKDKEEG@runtime?5error?5?$AA@ 00405118 LIBC:crt0msg.obj
0002:00000128 ??_C@_02PCIJFNDE@?$AN?6?$AA@ 00405128 LIBC:crt0msg.obj
0002:0000012c ??_C@_0O@MJNIPGOH@TLOSS?5error?$AN?6?$AA@ 0040512c LIBC:crt0msg.obj
0002:0000013c ??_C@_0N@BONNPDHF@SING?5error?$AN?6?$AA@ 0040513c LIBC:crt0msg.obj
0002:0000014c ??_C@_0P@MBDAJNE@DOMAIN?5error?$AN?6?$AA@ 0040514c LIBC:crt0msg.obj
0002:00000160 ??_C@_0KC@BDDGGBEJ@R6029?$AN?6?9?5This?5application?5cannot@ 00405160 LIBC:crt0msg.obj
0002:00000204 ??_C@_0CF@KJDAIALP@R6028?$AN?6?9?5unable?5to?5initialize?5he@ 00405204 LIBC:crt0msg.obj
0002:0000022c ??_C@_0DF@GAKBPDFP@R6027?$AN?6?9?5not?5enough?5space?5for?5lo@ 0040522c LIBC:crt0msg.obj
0002:00000264 ??_C@_0DF@IBLNNAIG@R6026?$AN?6?9?5not?5enough?5space?5for?5st@ 00405264 LIBC:crt0msg.obj
0002:0000029c ??_C@_0CG@IOHKGFNJ@R6025?$AN?6?9?5pure?5virtual?5function?5c@ 0040529c LIBC:crt0msg.obj
0002:000002c4 ??_C@_0DF@JIJJFJDC@R6024?$AN?6?9?5not?5enough?5space?5for?5_o@ 004052c4 LIBC:crt0msg.obj
0002:000002fc ??_C@_0CJ@EGEJHFME@R6019?$AN?6?9?5unable?5to?5open?5console?5@ 004052fc LIBC:crt0msg.obj
0002:00000328 ??_C@_0CB@GNHNIELH@R6018?$AN?6?9?5unexpected?5heap?5error?$AN?6@ 00405328 LIBC:crt0msg.obj
0002:0000034c ??_C@_0CN@FOLDKNG@R6017?$AN?6?9?5unexpected?5multithread?5@ 0040534c LIBC:crt0msg.obj
0002:0000037c ??_C@_0CM@FAHFJNHO@R6016?$AN?6?9?5not?5enough?5space?5for?5th@ 0040537c LIBC:crt0msg.obj
0002:000003a8 ??_C@_0JG@LBKMGKLD@?$AN?6This?5application?5has?5requested@ 004053a8 LIBC:crt0msg.obj
0002:00000440 ??_C@_0CM@FLCNIPKK@R6009?$AN?6?9?5not?5enough?5space?5for?5en@ 00405440 LIBC:crt0msg.obj
0002:0000046c ??_C@_0CK@KMMJOAPP@R6008?$AN?6?9?5not?5enough?5space?5for?5ar@ 0040546c LIBC:crt0msg.obj
0002:00000498 ??_C@_0CF@HOHMHDEK@R6002?$AN?6?9?5floating?5point?5not?5load@ 00405498 LIBC:crt0msg.obj
0002:000004c0 ??_C@_0CF@GOGNBNAK@Microsoft?5Visual?5C?$CL?$CL?5Runtime?5Lib@ 004054c0 LIBC:crt0msg.obj
0002:000004e8 ??_C@_02PHMGELLB@?6?6?$AA@ 004054e8 LIBC:crt0msg.obj
0002:000004ec ??_C@_0BK@OFGJDLJJ@Runtime?5Error?$CB?6?6Program?3?5?$AA@ 004054ec LIBC:crt0msg.obj
0002:00000508 ??_C@_03KHICJKCI@?4?4?4?$AA@ 00405508 LIBC:crt0msg.obj
0002:0000050c ??_C@_0BH@DNAGHKFM@?$DMprogram?5name?5unknown?$DO?$AA@ 0040550c LIBC:crt0msg.obj
0002:00000544 ??_C@_0BI@DFKBFLJE@GetProcessWindowStation?$AA@ 00405544 LIBC:crtmbox.obj
0002:0000055c ??_C@_0BK@CIDNPOGP@GetUserObjectInformationA?$AA@ 0040555c LIBC:crtmbox.obj
0002:00000578 ??_C@_0BD@HHGDFDBJ@GetLastActivePopup?$AA@ 00405578 LIBC:crtmbox.obj
0002:0000058c ??_C@_0BA@HNOPNCHB@GetActiveWindow?$AA@ 0040558c LIBC:crtmbox.obj
0002:0000059c ??_C@_0M@CHKKJDAI@MessageBoxA?$AA@ 0040559c LIBC:crtmbox.obj
0002:000005a8 ??_C@_0L@GMPLCCII@user32?4dll?$AA@ 004055a8 LIBC:crtmbox.obj
0002:000005c4 ??_C@_09KLGCKDOD@Program?3?5?$AA@ 004055c4 LIBC:secfail.obj
0002:000005d0 ??_C@_0KA@JEHFIFGP@A?5buffer?5overrun?5has?5been?5detect@ 004055d0 LIBC:secfail.obj
0002:00000670 ??_C@_0BJ@MDEKIEOJ@Buffer?5overrun?5detected?$CB?$AA@ 00405670 LIBC:secfail.obj
0002:00000690 ??_C@_0LB@BPLHHLFD@A?5security?5error?5of?5unknown?5caus@ 00405690 LIBC:secfail.obj
0002:00000744 ??_C@_0CD@GMKACBEK@Unknown?5security?5failure?5detecte@ 00405744 LIBC:secfail.obj
0002:00000774 ??_C@_13NOLLCAOD@?$AA?$AA?$AA?$AA@ 00405774 LIBC:a_map.obj
0002:000007c0 ___newctype 004057c0 LIBC:ctype.obj
0002:00000ac0 __wctype 00405ac0 LIBC:ctype.obj
0002:00000cc8 __load_config_used 00405cc8 LIBC:loadcfg.obj
0002:00000d60 ___safe_se_handler_table 00405d60 <linker-defined>
0002:00000d68 ___rtc_iaa 00405d68 LIBC:initsect.obj
0002:00000d6c ___rtc_izz 00405d6c LIBC:initsect.obj
0002:00000d70 ___rtc_taa 00405d70 LIBC:initsect.obj
0002:00000d74 ___rtc_tzz 00405d74 LIBC:initsect.obj
0002:00000d78 __IMPORT_DESCRIPTOR_KERNEL32 00405d78 kernel32:KERNEL32.dll
0002:00000d8c __NULL_IMPORT_DESCRIPTOR 00405d8c kernel32:KERNEL32.dll
0003:00000000 ___xc_a 00407000 LIBC:crt0init.obj
0003:00000008 ___xc_z 00407008 LIBC:crt0init.obj
0003:0000000c ___xi_a 0040700c LIBC:crt0init.obj
0003:00000018 ___xi_z 00407018 LIBC:crt0init.obj
0003:0000001c ___xp_a 0040701c LIBC:crt0init.obj
0003:00000020 ___xp_z 00407020 LIBC:crt0init.obj
0003:00000024 ___xt_a 00407024 LIBC:crt0init.obj
0003:00000028 ___xt_z 00407028 LIBC:crt0init.obj
0003:00000030 __aexit_rtn 00407030 LIBC:crt0.obj
0003:00000034 ___app_type 00407034 LIBC:crt0.obj
0003:000000d0 __XcptActTab 004070d0 LIBC:winxfltr.obj
0003:00000148 __First_FPE_Indx 00407148 LIBC:winxfltr.obj
0003:0000014c __Num_FPE 0040714c LIBC:winxfltr.obj
0003:00000150 __XcptActTabCount 00407150 LIBC:winxfltr.obj
0003:00000154 __fpecode 00407154 LIBC:winxfltr.obj
0003:00000158 ___badioinfo 00407158 LIBC:ioinit.obj
0003:00000160 __amblksiz 00407160 LIBC:heapinit.obj
0003:00000170 ___security_cookie 00407170 LIBC:seccook.obj
0003:00000270 __NLG_Destination 00407270 LIBC:exsup.obj
0003:00000280 ___lc_clike 00407280 LIBC:nlsdata2.obj
0003:00000290 __pctype 00407290 LIBC:ctype.obj
0003:00000294 __pwctype 00407294 LIBC:ctype.obj
0003:00000298 ___mb_cur_max 00407298 LIBC:nlsdata1.obj
0003:0000029c ___decimal_point 0040729c LIBC:nlsdata1.obj
0003:000002a0 ___decimal_point_length 004072a0 LIBC:nlsdata1.obj
0003:000002c0 __aenvptr 004072c0 LIBC:crt0.obj
0003:000002c4 __wenvptr 004072c4 LIBC:crt0.obj
0003:000002c8 ___error_mode 004072c8 LIBC:crt0.obj
0003:000002cc _errno 004072cc LIBC:crt0dat.obj
0003:000002d0 __doserrno 004072d0 LIBC:crt0dat.obj
0003:000002d4 __umaskval 004072d4 LIBC:crt0dat.obj
0003:000002d8 __osplatform 004072d8 LIBC:crt0dat.obj
0003:000002dc __osver 004072dc LIBC:crt0dat.obj
0003:000002e0 __winver 004072e0 LIBC:crt0dat.obj
0003:000002e4 __winmajor 004072e4 LIBC:crt0dat.obj
0003:000002e8 __winminor 004072e8 LIBC:crt0dat.obj
0003:000002ec ___argc 004072ec LIBC:crt0dat.obj
0003:000002f0 ___argv 004072f0 LIBC:crt0dat.obj
0003:000002f4 ___wargv 004072f4 LIBC:crt0dat.obj
0003:000002f8 __environ 004072f8 LIBC:crt0dat.obj
0003:000002fc ___initenv 004072fc LIBC:crt0dat.obj
0003:00000300 __wenviron 00407300 LIBC:crt0dat.obj
0003:00000304 ___winitenv 00407304 LIBC:crt0dat.obj
0003:00000308 __pgmptr 00407308 LIBC:crt0dat.obj
0003:0000030c __wpgmptr 0040730c LIBC:crt0dat.obj
0003:00000310 __exitflag 00407310 LIBC:crt0dat.obj
0003:00000314 __C_Termination_Done 00407314 LIBC:crt0dat.obj
0003:00000318 __C_Exit_Done 00407318 LIBC:crt0dat.obj
0003:0000031c __adbgmsg 0040731c LIBC:crt0msg.obj
0003:00000320 __pxcptinfoptrs 00407320 LIBC:winxfltr.obj
0003:000004a0 ?_pnhHeap@@3P6AHI@ZA 004074a0 LIBC:handler.obj
0003:000004a4 __newmode 004074a4 LIBC:_newmode.obj
0003:000004a8 ___lc_handle 004074a8 LIBC:nlsdata2.obj
0003:000004c0 ___lc_codepage 004074c0 LIBC:nlsdata2.obj
0003:000004c4 ___lc_collate_cp 004074c4 LIBC:nlsdata2.obj
0003:000004d0 ___sbh_pHeaderDefer 004074d0 <common>
0003:000004d4 ___sbh_cntHeaderList 004074d4 <common>
0003:000004d8 ___sbh_pHeaderList 004074d8 <common>
0003:000004dc ___sbh_threshold 004074dc <common>
0003:000004e0 ___sbh_pHeaderScan 004074e0 <common>
0003:000004e4 ___sbh_sizeHeaderList 004074e4 <common>
0003:000004e8 ___sbh_indGroupDefer 004074e8 <common>
0003:000004ec ___mblcid 004074ec <common>
0003:000004f0 ___ismbcodepage 004074f0 <common>
0003:00000500 __mbctype 00407500 <common>
0003:00000604 ___mbcodepage 00407604 <common>
0003:00000610 ___mbulinfo 00407610 <common>
0003:00000620 __mbcasemap 00407620 <common>
0003:00000720 __crtheap 00407720 <common>
0003:00000724 ___active_heap 00407724 <common>
0003:00000728 __nhandle 00407728 <common>
0003:00000740 ___pioinfo 00407740 <common>
0003:00000840 ___env_initialized 00407840 <common>
0003:00000844 ___onexitend 00407844 <common>
0003:00000848 ___onexitbegin 00407848 <common>
0003:0000084c ___mbctype_initialized 0040784c <common>
0003:00000850 __FPinit 00407850 <common>
0003:00000854 __acmdln 00407854 <common>

entry point at 0001:00000028

Static symbols

0001:00000289 _doexit 00401289 f LIBC:crt0dat.obj
0001:00000772 _parse_cmdline 00401772 f LIBC:stdargv.obj
0001:00000e95 $$$00003 00401e95 f LIBC:exsup3.obj
0001:0000135b _report_failure 0040235b f LIBC:secchk.obj
0001:00001456 _CPtoLCID 00402456 f LIBC:mbctype.obj
0001:00001485 _setSBCS 00402485 f LIBC:mbctype.obj
0001:000014ae _setSBUpLow 004024ae f LIBC:mbctype.obj
0001:000026a0 $$$00001 004036a0 f LIBC:exsup.obj
0001:000026c0 __unwind_handler 004036c0 f LIBC:exsup.obj
0001:000026c0 $$$00003 004036c0 f LIBC:exsup.obj
0001:000026e2 $$$00005 004036e2 f LIBC:exsup.obj
0001:0000274a $$$00007 0040374a f LIBC:exsup.obj
0001:0000278e $$$00011 0040378e f LIBC:exsup.obj
... << RSDN@Home 1.1.0 stable >>
В XXI век с CCore.
Копай Нео, копай -- летать научишься. © Matrix. Парадоксы
Re[3]: А нужен ли нам CRT?
От: Аноним  
Дата: 29.01.04 20:36
Оценка:
Здравствуйте, _nn_, Вы писали:

__>Было бы неплохо если бы CRT ,которая идет в студии, состояла из нескольких частей :

__>например математические функции, работа со строками , работа с плавающей запятой и т.д.
Маленькое уточнение — операций с плавающей запятой нет, есть операции с плавающей точкой.
__>Т.е. в программы можно было бы добавить ту часть которая нужна , а не тащить все, из которого половина не используется.

Если бы вы хоть раз дали себе труд скормить только что собранную в VC програму дебагеру, а лучше всего декомпилятору типа IDA, то знали бы, что код поддержки времени исполнения не реализует матиматику, или строковые функции, а только подготавливает все необходимое для того чтобы библиотечные функции могли были быть вызваны.
То что выполняется от програм ентри поинт и до функции winMain, плюс то что выполняется после winMain и до операции возврата из программы и есть собственно CRT.
Re[4]: А нужен ли нам CRT?
От: _nn_ www.nemerleweb.com
Дата: 30.01.04 11:02
Оценка:
Здравствуйте, Аноним, Вы писали:

<skip>

В таком случае вывод напрашивается переписать CRT для себя , или использовать то что есть....
http://rsdn.nemerleweb.com
http://nemerleweb.com
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.