ã¡ã¢ãªãšãã£ã¹ã¯ã¹ããŒã¹ãææ°é¢æ°çã«å¢å ãããããæ¬åœã«å°ããªããã°ã©ã ã®äœæãå¿ èŠã«ãªãããšã¯ã»ãšãã©ãããŸããããå°ããªãŠãŒãã£ãªãã£ããšã«æ°çŸãããã€ããäœåã«å€±ãã®ãæ®å¿µãªå Žåã«ã¯ãã¿ã¹ã¯ãçºçããããšããããŸãã
ãã®èšäºã§ã¯ãææ°ã®éçºããŒã«ã§ããMicrosoft Visual Studio 2008ã䜿çšããŠãæ¬åœã«ã³ã³ãã¯ããªããã°ã©ã ãååŸããæ¹æ³ã«ã€ããŠèª¬æããŸãã
äŸãšããŠãã³ã³ãœãŒã«ã¢ãŒã«ã€ã7-zipã移æ€ãããã®å¹æãè©äŸ¡ããŸãã
åé¡ãšæãããªè§£æ±ºç
ã©ã³ã¿ã€ã ã©ã€ãã©ãªïŒCRTïŒãåçã«ãªã³ã¯ãããšããæ確ãªæ±ºå®ã¯ãææ°ããŒãžã§ã³ãWindows XPã«ããã©ã«ãã§ã€ã³ã¹ããŒã«ãããŠããªããããé©åã§ã¯ãããŸããã ãããŠãã¡ãããDLLã®åœ¢ã§ã®CRTã®äŸçµŠã¯ãïŒãã®èšäºã®åºæºã«ããïŒããªãã®éããããããäžèœè¬ã§ã¯ãããŸããã
å¥ã®è§£æ±ºçã¯ãæšæºã®msvcrt.dllã©ã€ãã©ãªã䜿çšããããšã§ãããã®ã©ã€ãã©ãªã®ç°ãªãããŒãžã§ã³ã¯ãçŸåšã®ãã¹ãŠã®ããŒãžã§ã³ã®Windowsã«ãããŸãã ãã ãããã®DLLãæ¥ç¶ã§ããã€ã³ããŒãã©ã€ãã©ãªã¯ãMicrosoft Visual Studio 6.0ã§ã®ã¿äœ¿çšå¯èœã§ããåŸç¶ã®ãšãã£ã·ã§ã³ã§ã¯ãæ°ããããŒãžã§ã³ããšã«ã©ã€ãã©ãªã䜿çšããŸãïŒmsvcr70.dll / msvcp70.dllãmsvcr71.dll / msvcp71.dllãªã©ïŒã
msvcrt.dllã®ã€ã³ããŒãã©ã€ãã©ãªãååŸããVS2008ã§ãã«ããããŠãããããžã§ã¯ãã«æ¥ç¶ããããšããç°¡åãªè©Šã¿ã¯ãHello Worldã¿ã€ãã®æãåçŽãªã±ãŒã¹ã§ã®ã¿æåããŸã-Windows XPã®ãªãªãŒã¹ä»¥éãã©ã³ã¿ã€ã ã©ã€ãã©ãªã§å€§ããªå€æŽãçºçããŸãã-ããã¯ãã»ãã¥ã¢ãã«ããŽãªã®æ©èœã®åºçŸã§ãcrtããäŸå€åŠçã®å€æŽãããã³è¿œå ã®ã©ã³ã¿ã€ã ãã§ãã¯ã
åé¡è§£æ±º
ãã®åé¡ã®è§£æ±ºçã¯ãKoby Kahaneã®èšäºã Visual C ++ 2005ã䜿çšããMSVCRT.DLLãšã®åçãªã³ã¯ãã§ææ¡ãããŠããŸãã
圌ã¯ãWindows Driver KitïŒWDKïŒã®ææ°ããŒãžã§ã³ã®èª¿æ»ãè¡ããèå³æ·±ãæ©èœãçºèŠããŸãããWDKã«ä»å±ããå€ãã®ã¢ããªã±ãŒã·ã§ã³ãšäŸã§ã¯ãmsvcrt.dllãå¿ èŠãªCRTã䜿çšããŠããŸãã ããã«ãWDKã®ãã«ãç°å¢ã¯ææ°ã§ããææ°ã®WDKã®ã³ã³ãã€ã©ããŒãžã§ã³ã¯ãVS2008SP1ã®ã³ã³ãã€ã©ããŒãžã§ã³ãšåãã§ãã
ãããžã§ã¯ããã¡ã€ã«ã®è©³çŽ°ãªèª¿æ»ã«ããããœãªã¥ãŒã·ã§ã³ã¯ãããžã§ã¯ãã«æ¥ç¶ããããã€ãã®ãªããžã§ã¯ããã¡ã€ã«ïŒmsvcrt_win2000.objãmsvcrt_winxp.objãmsvcrt_win2003.objïŒã«ããããšãããããŸãã åºæ¬çã«ãçŸåšã®CRTã³ã³ãã³ããšã察å¿ããWindowsã®ããŒãžã§ã³åã«ååšããCRTã³ã³ãã³ããšã®ãå·®ç°ããå«ãŸããŠããŸãã ããã¯ãæ°ããWindowsã®ãªããžã§ã¯ããã¡ã€ã«ã®ãµã€ãºãå€ããã®ãããå°ãããšããäºå®ã説æããŠããŸãã
ãããã£ãŠãå€å žçãªmsvcrt.dllãæ¥ç¶ããã«ã¯ã2ã€ã®ç°¡åãªæé ã«åŸãå¿ èŠããããŸãã
- ã³ã³ãã€ã©ããŒ/ NODEFAULTLIBãŸãã¯ãããžã§ã¯ãèšå®ã䜿çšããŠããã¹ãŠã®æšæºã©ã€ãã©ãªã®æ¥ç¶ãç¡å¹ã«ãããªã³ã«ãŒ->å ¥å->ãã¹ãŠã®ããã©ã«ãã©ã€ãã©ãªãç¡èŠ
- \ lib \ Crt \ i386 \ msvcrt.lib WDKãã©ã«ããŒã«ããmsvcrt.libã€ã³ããŒãã©ã€ãã©ãªãæ¥ç¶ããã¢ããªã±ãŒã·ã§ã³ãå®è¡ããWindowsã®æå°ããŒãžã§ã³ã«å¯Ÿå¿ãããªããžã§ã¯ããã¡ã€ã«ãæ¥ç¶ããå¿ èŠããããŸãã ããšãã°ãããã\ lib \ Crt \ i386 \ msvcrt_winxp.objãšããŸãã
ãã¹ãŠããããžã§ã¯ããçµã¿ç«ãŠãããšãã§ããæãåçŽãªã±ãŒã¹ã§ã¯ãã³ã³ãã€ã«ããŠæ£ããåäœããŸãã
WDKããæã¡ã§ãªããæ°ã¡ã¬ãã€ãã®ã©ã€ãã©ãªã®ããã«600 MBãããŠã³ããŒãããããªã人ã®ããã«ãå¿ èŠãªãã¡ã€ã«ãåå¥ã«å«ãã¢ãŒã«ã€ããžã®ãªã³ã¯ãèšäºã®æåŸã«ç€ºããŸããã
ç·Žç¿-èœãšãç©Žãšãã¥ã¢ã³ã¹
ããã§ã¯ãmsvcrt.dllã䜿çšããããã«ãããžã§ã¯ããå€æããŠãäœãèµ·ãããèŠãŠã¿ãŸãããã
ããšãã°ãããªãåªãããªãŒãã³ãœãŒã¹ã¢ãŒã«ã€ãã§ãã7-zipã䜿çšããŸãã ãã®ãœãŒã¹ã¯7-zip.orgã§å ¥æã§ããŸãã ã¡ãã£ãšãã調æ»ã«ãããšããããžã§ã¯ãã¯çŸåšMicrosoft Visual C ++ 6.0ã䜿çšããŠãã«ããããŠããããã移æ€ãç°¡åã§ãã
ãã®ãããªéæ³ã®äžé£ã®ã¢ã¯ã·ã§ã³ãå®è¡ããŸãã
- æåã«ãMicrosoft Visual C ++ 2008ã䜿çšããŠãããžã§ã¯ããæ£ãããã«ããããŠããããšã確èªããŸãããããè¡ãã«ã¯ã\ CPP \ 7zip \ãã©ã«ããŒããmakefileãå®è¡ããŸãïŒnmakeã䜿çšïŒã 以éããã¹ãŠã®ãã©ã«ããŒã¯ããããžã§ã¯ããœãŒã¹ã解åããããã©ã«ããŒã«é¢é£ããŠç€ºãããŸãã
- ãã§ã«åæã®ã¢ã»ã³ããªæ®µéã§ãèŠåã衚瀺ãããŸãïŒãããžã§ã¯ãã®èšå®ã«å¿ããŠããšã©ãŒãšèŠãªãããŸãïŒC4996ïŒ 'wcscpy'ïŒãã®é¢æ°ãŸãã¯å€æ°ã¯å®å šã§ã¯ãªãå¯èœæ§ããããŸãã 代ããã«wcscpy_sã®äœ¿çšãæ€èšããŠãã ããã
- ããŠããã®å°ããªä¿®æ£ãè¡ããŸãããã 125è¡ç®ã®\ CPP \ Windows \ Security.cppãã¡ã€ã«ã§ã
wcscpyïŒsãMY__SE_LOCK_MEMORY_NAMEïŒ;
ã«
wcscpy_sïŒsã128ãMY__SE_LOCK_MEMORY_NAMEïŒ;
128æåã¯ãå³æ宣èšããããããã¡ãŒã®æ倧ãµã€ãºã§ã - ããã§ããã«ãããã»ã¹ãæåããŸããã åºåã¯ã7zã¢ãŒã«ã€ããŒã®ãã¹ãŠã®ã³ã³ããŒãã³ãïŒã³ã³ãœãŒã«ããŒãžã§ã³ããã¡ã€ã«ãããŒãžã£ãŒãªã©ïŒã®å®è¡å¯èœãã¡ã€ã«ãåãåããŸããã ã¢ã»ã³ããªã®æäœæ§ã確èªããã«ã¯ããã¡ã€ã«\ CPP \ 7zip \ UI \ Console \ O \ 7z.exeããã³\ CPP \ 7zip \ Bundles \ Format7zF \ O \ 7z.dllã1ã€ã®ãã©ã«ããŒã«ã³ããŒããã³ã³ãœãŒã«ã¢ãŒã«ã€ããŒãåäœããŠããããšã確èªããŸãã ãŸããæ£åžžã«èµ·åããã«ã¯ããã®æšªã«ãããã§ã¹ããã¡ã€ã«ãé 眮ããå¿ èŠããããŸãã ãã®ãããžã§ã¯ãã§ã¯ãèšäºã®æ·»ä»ãã¡ã€ã«ã«èšèŒãããŠããŸãã
ããã§æãèå³æ·±ãéšåã¯ãã¢ããªã±ãŒã·ã§ã³ã§åŸæ¥ã®ã©ã³ã¿ã€ã ã䜿çšããæ¹æ³ã§ãã ãããè¡ãã«ã¯ãããã€ãã®éæ³ã®ãã¹ãäœæããŸããããã¯ãåã®ã»ã¯ã·ã§ã³ãèªãã ãã¹ãŠã®äººã«ãšã£ãŠæããã§ãã
- ãªã³ã«ãŒãã©ã°ã®\ CPP \ Build.makãã¡ã€ã«ã§ãæ¢ã«ç¡é¢ä¿ãªãªãã·ã§ã³-OPTïŒNOWIN98ã/ NODEFAULTLIBã§çœ®ãæããŸãïŒ45è¡ç®ïŒ
- ããã§ãæå°éã®åŽåã§Kernel32.lib uuid.libã©ã€ãã©ãªã®ãªã³ã¯ãåãããžã§ã¯ãã«è¿œå ããå¿ èŠããããŸãã åãããžã§ã¯ãã®ã¡ã€ã¯ãã¡ã€ã«ãåå¥ã«ç·šéããããªãã®ã§ãåã\ CPP \ Build.makã§ãåãããžã§ã¯ãã«å¿ èŠãªã©ã€ãã©ãªãšã¢ãžã¥ãŒã«ããªã³ã«ãŒèšå®è¡ã«è¿œå ããŸãã ãããã£ãŠã次ã®èšå®æååãååŸããŸãã
- LFLAGS = $ïŒLFLAGSïŒ.. \ .. \ msvcrt \ msvcrt_winxp.obj .. \ .. \ msvcrt \ msvcrt.lib Kernel32.lib uuid.lib -nologo -NODEFAULTLIB -OPTïŒREF -OPTïŒICF
- çµæãåéããŠç¢ºèªããŸãã Win7ãšä»®æ³XPã§ã¯ãã¹ãŠåé¡ãªãåäœããã¢ã»ã³ããªã«ãã£ãŠäœæãããã¢ãŒã«ã€ãã¯å ã®7zipã§æ£åžžã«éããŸãã
次ã«ããã®ãããªç§»æ€ãããã©ãŒãã³ã¹ã«ã©ã®ããã«åœ±é¿ãããã確èªããŸãããã æ¯èŒã®ããã«ãå ã®ã¢ã»ã³ããªãš2ã€ã®ã¢ã»ã³ããªã䜿çšããŸãã1ã€ã¯MSVCR90.dllã䜿çšãããã1ã€ã¯MSVCRT.dllã䜿çšããŸãã
次ã®è¡šã¯ãçµæã®ãã¡ã€ã«ãµã€ãºãæ¯èŒããŠããŸãã æ°ããã³ã³ãã€ã©ãžã®ç§»æ€ã«ãããå®è¡å¯èœãã¡ã€ã«ã®ãµã€ãºã®çŽ10ïŒ ãèªåçã«ç¯çŽãããŸããã
MS VC 6.0 | MS VC 9.0 | MS VC 9.0ïŒmsvcrt.dllïŒ | |
7z.exe | 150 016ãã€ã | 136,704ãã€ã | 138,240ãã€ã |
7z.dll | 726016ãã€ã | 655,872ãã€ã | 657,920ãã€ã |
é床ã枬å®ããããã«ããããžã§ã¯ãã¢ã»ã³ããªã®çµæãšããŠåãåã£ããã¹ãŠã®ãã€ããªãã¡ã€ã«ïŒçŽ187MbïŒãããã¯ããŸãã åã¢ã»ã³ããªã¯ã10åã®ãããã³ã°ãµã€ã¯ã«ãå®è¡ããŠããã£ã¹ã¯ã¢ã¯ã»ã¹ãšãã£ãã·ã¥é床ã®åœ±é¿ã軜æžããååŸããããŒã¿ãå¹³ååããŸãã
MS VC 6.0 | MS VC 9.0 | MS VC 9.0ïŒmsvcrt.dllïŒ | |
梱å æé | 122.86ç§ | 112.02ç§ | 113.73ç§ |
ã芧ã®ãšãããæŽæ°ãããã³ã³ãã€ã©ãžã®åãæ¿ãã«ãããå®éã®ããã©ãŒãã³ã¹ãåäžããŸããïŒ10ïŒ è¿ãããã®çš®ã®ã¢ããªã±ãŒã·ã§ã³ã«ãšã£ãŠããã»ã©æªãã¯ãããŸããïŒã ãŸããçæããããã€ããªãã¡ã€ã«ã¯åãçŽ10ïŒ æžå°ããŸããã
VC90ã®ã¯ã©ã·ãã¯ã©ã³ã¿ã€ã ãšmsvcrt.dllã®äœ¿çšã«å€§ããªéãã¯ãããŸããã§ããã
ã¡ãœããã®å¶é
ãã ãããã®æ¹æ³ã®ããã€ãã®æœåšçãªæ¬ ç¹ãšå¶éã«æ³šæããå¿ èŠããããŸãã
ãããã°ã©ã³ã¿ã€ã msvcrtd.dllã«æ¥ç¶ããæ¹æ³ã¯ãããŸãã
ãã®ã€ã³ããŒãã©ã€ãã©ãªãWDKã«å«ãŸããŠãããšããäºå®ã«ããããããã.dllèªäœã¯èŠã€ãããŸããã§ãããKobyKahaneæ°ã«ãããšãMicrosoftã¯ãããWDKã®å°æ¥ã®ããŒãžã§ã³ã«å«ããäºå®ã¯ãããŸããã
ããã«ãããã¢ããªã±ãŒã·ã§ã³ã®ãããã°ãå€§å¹ ã«è€éã«ãªãããªãªãŒã¹åã«ã®ã¿èšäºã§èª¬æãããŠããã¡ãœããã®äœ¿çšãåŒãèµ·ããããŸããããã«ããã補åã®æçµçãªçŽæ¥ãªãªãŒã¹ã§ãããã«ãããã°ãçºçããå¯èœæ§ããããŸããçµå±ãã©ã³ã¿ã€ã ã®å®å šãªäºææ§ã¯ä¿èšŒãããŸããã
MFCãATL
MFCãŸãã¯ATLããã©ãã°ã¢ã³ãããããããŠæ°ããå€ãã©ã³ã¿ã€ã ãåçã«äœ¿çšããã®ã¯ããªãé£ããã¿ã¹ã¯ã§ããããã®èšäºã®ç¯å²å€ã§ãã ãã ãããããã®ã©ã€ãã©ãªã䜿çšããã¢ããªã±ãŒã·ã§ã³ã®å Žåãéåžžããã£ã¹ã¯å®¹éã«å³ããèŠä»¶ã¯ãããŸããã
ãã¡ã€ã«
èšäºã«æ·»ä»ãããŠããã¢ãŒã«ã€ãïŒ1.8 MbïŒã«ã¯ä»¥äžãå«ãŸããŸãã
- 7z diffãã©ã«ããŒã«ã¯ã7zipãããžã§ã¯ãã«å¯Ÿãããã¹ãŠã®å€æŽãå«ãŸããŠããŸãã ããŠã³ããŒããã7z465.tar.bz2ããµã€ããã解åãããããžã§ã¯ãã®ã«ãŒããã©ã«ããŒã®äžã«ããããããŒã«ããŸãã
- msvcrtãã©ã«ããŒã«ã¯ãmsvcrt.dllã䜿çšããããã«ãããžã§ã¯ãã移æ€ããããã®WDKã®ãã€ããªãå«ãŸããŠããŸã
- åºåãã©ã«ããŒã«ã¯ããã¹ãçµæãä¿¡é Œããã«å確èªããã人ã®ããã«ãã³ã³ãœãŒã«ããŒãžã§ã³ã®7-zipã®3ã€ã®ãã«ãããã¹ãŠå«ãŸããŠããŸãã
ãã¡ã€ã«ã¯æ¬¡ã®å ŽæããããŠã³ããŒãã§ããŸããhttp ïŒ //download.zillya.com/attach/MsVCArticlesAttach.zip
æŽæ°ããŸãã ã CryptochildãæåŸ ãæäŒã£ãŠãããŸãããããããšãïŒ