| CLR via C# | UserPreferences |
Part1. CLRÀÇ ±âº» Áö½Ä
Chapter 1. °ø¿ë ¾ð¾î ·±Å¸ÀÓ(CLR)ÀÇ ½ÇÇà ¸ðµ¨
¼Ò½ºÄÚµå´Â °ü¸®µÇ´Â ¸ðµâ(managed module)ÀÇ ÇüÅ·Π¿Ï¼ºµÈ´Ù.
°ü¸®µÇ´Â ¸ðµâÀÇ ÆÄÀÏ Æ÷¸ËÀº Ç¥ÁØ 32/64ºñÆ® Microsoft Windows Portable Excutable(PE32/PE32+)ÀÇ ÇüÅÂÀ̸ç, ÀÌ´Â CLRÀÌ ½ÇÇà½Ãų ¼ö ÀÖ´Â ½ÇÇà ÆÄÀÏ Æ÷¸ËÀ̱⵵ ÇÏ´Ù.
¸ðµâÁß¿¡´Â ¼ø¼öÇÏ°Ô IL Äڵ常À» °¡Áö´Â ¸ðµâÀÌ ÀÖÀ» ¼ö Àִµ¥ ÀÌ °æ¿ì PE32 ȤÀº PE32+ Çì´õ Á¤º¸´Â ¹«½ÃµÈ´Ù.
| °¢ ºÎºÐÀÇ ¸íĪ | ¼³¸í |
| PE32, PE32+ Çì´õ | Ç¥ÁØ Windows PE ÆÄÀÏ Çì´õÀ̸ç, À̰ÍÀº COFF ÇüÅÂ¿Í À¯»çÇÑ ±¸Á¶¸¦ °¡Áø´Ù. Çì´õ¿¡´Â ÆÄÀÏÀÇ ½ÇÇà ŸÀÔ(CUI, GUI, DLL)À» °¡Áö¸ç ºôµå ³¯Â¥°¡ Æ÷ÇÔÀÌ µÈ´Ù. |
| CLR Çì´õ | °ü¸®µÇ´Â ¸ðµâÀÓÀ» Á¤ÀÇÇØ ÁÖ´Â Á¤º¸µéÀ» Æ÷ÇÔÇÑ´Ù. ½ÇÇà¿¡ ÇÊ¿äÇÑ CLR¹öÀü°ú ±âŸ ¼³Á¤°ª, ¾îÇø®ÄÉÀÌ¼Ç ÁøÀÔÁ¡(MainÇÔ¼ö)ÀÇ Á¤º¸ ¸ÞŸµ¥ÀÌÅÍÀÇ À§Ä¡¿Í Å©±â, ¸®¼Ò½º, °·ÂÇÑ À̸§(strong name)Á¤º¸µîÀÌ ÀúÀåµÈ´Ù. |
| ¸ÞŸµ¥ÀÌÅÍ | ¸ðµç °ü¸®¸ðµâÀº ¸ÞŸµ¥ÀÌÅ͸¦ °¡Áö°í Àִµ¥ Å©°Ô µÎ Á¾·ùÀÇ Å×À̺íÀÌ ÀÖ´Ù. µÎ Å×ÀÌºí ¸ðµÎ°¡ ŸÀÔ¿¡ ´ëÇÑ ¸ñ·ÏÀ» ´ã°í ÀÖ´Ù. ´Ü, ÇÑ Á¾·ù´Â ¼Ò½ºÄڵ忡¼ Á¤ÀÇÇÑ Å¸ÀÔÀÇ ¸ñ·ÏÀ̸ç, ´Ù¸¥ ÇÑ Á¾·ù´Â ¼Ò½ºÄڵ忡¼ ÂüÁ¶Çؼ »ç¿ëµÈ ŸÀÔÀÇ ¸ñ·ÏÀÌ´Ù. |
| ILÄÚµå | ¾ð¾î ÄÄÆÄÀÏ·¯¿¡ ÀÇÇØ¼ ¼Ò½ºÄڵ尡 ÄÄÆÄÀÏµÈ °á°ú¹°ÀÌ´Ù. |
CLRÀÇ ÀÛ¾÷´ë»óÀº ¸ðµâÀÌ ¾Æ´Ï°í ¹Ù·Î ¾î¼Àºí¸®ÀÌ´Ù. ¾î¼Àºí¸®¶õ Çϳª ÀÌ»óÀÇ ¸ðµâ ȤÀº ¸®¼Ò½º ÆÄÀÏ·Î ±¸¼ºµÈ ³í¸®ÀûÀÎ ÆÄÀÏÀÇ ±×·ìÀ» ÀǹÌÇÑ´Ù. µÑ° ¾î¼Àºí¸®´Â Àç»ç¿ë, º¸¾È, ¹öÀü°ü¸®ÀÇ ´ÜÀ§ÀÌ´Ù. °³¹ßÀÚ°¡ ¼±ÅÃÇÑ ÄÄÆÄÀÏ·¯³ª Åø¿¡ ÀÇÇØ¼ »ç¿ëÀÚ´Â ÆÄÀÏ Çϳª·Î ±¸¼ºµÈ ¾î¼Àºí¸®¸¦ Á¦ÀÛÇÒ ¼öµµ ÀÖ°í ¿©·¯ ÆÄÀÏ·Î ±¸¼ºµÈ ¾î¼Àºí¸®¸¦ Á¦ÀÛÇÒ ¼öµµ ÀÖ´Ù. CLRÀÇ ¼¼°è¿¡¼´Â ¾î¼Àºí¸®¸¦ ¿ì¸®°¡ ÈçÈ÷ ÄÄÆ÷³ÍÆ®¶ó°í ºÎ¸£±âµµ ÇÑ´Ù.
±âº»ÀûÀ¸·Î ÄÄÆÄÀÏ·¯´Â »ý¼ºµÈ °ü¸®¸ðµâÀ» ¾î¼Àºí¸®·Î º¯È¯ÇÏ´Â ÀÛ¾÷À» ÇÑ´Ù. Áï C# ÄÄÆÄÀÏ·¯°¡ ¸Å´ÏÆä½ºÆ® Á¤º¸°¡ Æ÷ÇÔµÈ ¸ðµâÀ» »ý¼ºÇÏ´Â °ÍÀÌ´Ù.
±×¸²
¾î¼Àºí¸®¸¦ ÀÌ¿ëÇØ Àç»ç¿ë, º¸¾È, ¹öÀü°ü¸® ´ë»óÀÇ ÄÄÆ÷³ÍÆ®ÀÇ ³í¸®Àû ±¸¼º°ú ¹°¸®Àû ±¸¼ºÀ» ÃÖ´ëÇÑ ºÐ¸®ÇÏ´Â °ÍÀÌ °¡´ÉÇÏ´Ù.
¾î¼Àºí¸® ¸ðµâÀº ÂüÁ¶µÈ ¾î¼Àºí¸®ÀÇ Á¤º¸µµ Æ÷ÇÔÇÑ´Ù. (¹öÀüÁ¤º¸¸¦ Æ÷ÇÔÇÏ¿©) ÀÌ Á¤º¸¸¦ ÀÌ¿ëÇÏ¿© ¾î¼Àºí¸®´Â ½º½º·Î-¼³¸íÇÏ´Â °ÍÀÌ °¡´ÉÇÏ´Ù. ´Þ¸® ¾ê±âÇϸé CLRÀº ¾î¼Àºí¸®¿¡ Æ÷ÇÔµÈ Äڵ带 ½ÇÇàÇϱâ À§ÇÑ ¾î¼Àºí¸®ÀÇ Á÷Á¢ÀûÀÎ Á¾¼Ó°ü°è¸¦ ¾Ë ¼ö ÀÖ´Ù´Â °ÍÀÌ´Ù. (·¹Áö½ºÆ®¸®³ª ¾×Ƽºê µð·ºÅ丮´Â ÇÊ¿äÇÏÁö ¾Ê´Ù.)
¼³Ä¡µÈ .NETÀÇ ¹öÀüÀº ´ÙÀ½ ·¹Áö½ºÆ®¸®¿¡¼ È®ÀÎÇÒ ¼ö ÀÖ´Ù.
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\policy
¶ÇÇÑ
CLRVer.exe À¯Æ¿¸®Æ¼·Îµµ ½ÇÇàÁßÀÎ ÇÁ·Î±×·¥¿¡ ´ëÇÑ CLR ¹öÀüÀ» È®ÀÎÇÒ ¼ö ÀÖ´Ù.
¸¸¾à ÇÁ·Î±×·¥À» Á¦ÀÛÇÒ¶§ ƯÁ¤¹öÀüÀÇ Windows ±â´ÉÀ» »ç¿ëÇÏ±æ ¿øÇÒ¶§°¡ ÀÖ´Ù. ÀÌ °æ¿ì °³¹ßÀÚ´Â °ü¸®µÇÁö ¾Ê´Â unsafe Äڵ带 »ç¿ëÇÏ¿© ƯÁ¤ CPU¿¡ ÀÇÁ¸ÀûÀÎ ±â´ÉÀ» Æ÷ÇÔÇÒ ¼ö ÀÖ´Ù.
ÀÌ·¯ÇÑ ±â´ÉÀ» Á¦°øÇϱâ À§ÇØ C# ÄÄÆÄÀÏ·¯´Â /platform ½ºÀ§Ä¡¿É¼ÇÀÌ Á¦°øµÈ´Ù.
»ý¼ºµÈ °ü¸® ¸ðµâÀÇ Çì´õ Á¤º¸¸¦ È®ÀÎÇÒ ¼ö ÀÖ°Ô ÇØÁÖ´Â DumpBin?.exe¿Í CorFlags?.exe µÎ °³ÀÇ ¸í·ÉÁÙ À¯Æ¿¸®Æ¼¸¦ Á¦°øÇØ ÁØ´Ù.
°ü¸®Äڵ尡 ºñ°ü¸® Äڵ庸´Ù ¼º´ÉÀÌ ¿ì¼öÇÒ ¼ö ÀÖ´Â ¸î°¡Áö ±Ù°Å
1. CLRÀº ¾îÇø®ÄÉÀ̼ÇÀÇ ½ÇÇàÆÐÅÏÀ» ÇÁ·ÎÆÄÀÏ ÇÒ ¼ö ÀÖÀ¸¸ç ÀÌ¿¡ µû¶ó¼ ¾îÇø®ÄÉÀÌ¼Ç ½ÇÇàÁß¿¡ ILÄڵ带 ³×ÀÌÆ¼ºê ÄÚµå·Î ´Ù½Ã ÄÄÆÄÀÏÇÒ ¼ö ÀÖ´Ù.
2. ƯÁ¤»óȲÀÇ Å×½ºÆ® °ª ȤÀº ³í¸® ¿¬»êÀÇ °á°ú¸¦ ½ÇÇàÀü¿¡ ÀÌ¹Ì Á¤È®ÇÏ°Ô ¾Ë ¼ö ÀÖ´Ù. ±×¿¡ µû¶ó¼ ¾îÇø®ÄÉÀ̼ÇÀÇ ½ÇÇàÄڵ带 Á» ´õ ºü¸¥ ³×ÀÌÆ¼ºê Äڵ带 »ý¼ºÇÏ°Ô µÈ´Ù.
3. º¸ÅëÀÇ ºñ°ü¸® ÄÚµå´Â ÃÖÀú»ç¾ç¿¡ ¸ÂÃç¼ Ãâ½ÃµÈ´Ù. ¹Ý¸é JIT ÄÄÆÄÀÏ·¯´Â ½ÇÇàȯ°æ¿¡ ÃÖÀûÈµÈ ³×ÀÌÆ¼ºê Äڵ带 »ý¼ºÇÒ ¼ö ÀÖ´Ù.
IL»ç¿ëÀ¸·Î ¾ò´Â ÀåÁ¡À¸·Î CPU¸¦ Ãß»óÈÇÔÀ¸·Î ½±°í ºü¸£°Ô ¾Ë¾Æº¼ ¼ö ÀÖÁö¸¸ °¡Àå Å« ÀåÁ¡Àº ¾ÈÀüÇÏ°Ô ½ÇÇàµÊÀ» CLRÀÌ º¸ÀåÇØ Áشٴ °ÍÀÌ´Ù.
ILÄڵ尡 ³×ÀÌÆ¼ºê ÄÚµå·Î º¯È¯µÉ¶§ CLRÀº °ËÁõÀÛ¾÷À¸·Î ºÒ¸®´Â ÀÏ·ÃÀÇ ÀÛ¾÷À» ¼öÇàÇÑ´Ù. ¸ðµç ¸Þ¼µåÀÇ È£ÃâÄڵ带 ´ë»óÀ¸·Î ÀÎÀÚÀÇ Å¸ÀÔ°ú °³¼ö°¡ Á¤È®ÇÏ°í ¿Ã¹Ù¸¥Áö, ¹Ýȯ°ªÀº ÀûÀýÇÑ Å¸ÀÔÀ¸·Î »ç¿ëµÇ´ÂÁö ¸Þ¸ð¸® ħ¹üµîµµ °ËÃâÀÌ µÈ´Ù.
(°ü¸®µÇ´Â ¸ðµâÀÇ ¸ÞŸµ¥ÀÌÅͰ¡ Á¸ÀçÇϱ⠶§¹®¿¡ ÀÌ·± ÀÛ¾÷ÀÌ °¡´ÉÇÏ´Ù.)
Windows ÇÁ·Î¼¼½º Çϳª¸¦ »ý¼ºÇϰí À¯ÁöÇÏ´Â µ¥´Â ¸¹Àº ¿î¿µÃ¼Á¦ÀÇ ÀÚ¿øÀ» ÇÊ¿ä·Î ÇÑ´Ù.
µû¶ó¼ ¸¹Àº ÇÁ·Î¼¼½º¸¦ »ý¼ºÇÑ´Ù´Â °ÍÀº CPU¿¡ ¸¹Àº ºÎ´ãÀ» ÁÖ´Â °Í°ú µ¿½Ã¿¡ ¿î¿µÃ¼Á¦¿¡ ÀÚ¿øºÎÁ·À» ¾ß±âÇÏ´Â ¿øÀÎÀÌ µÇ±âµµ ÇÑ´Ù.
½ÇÁ¦ CLRÀº ÇϳªÀÇ OSÇÁ·Î¼¼½º¿¡ ¿©·¯ °³ÀÇ °ü¸®µÇ´Â ¾îÇø®ÄÉÀ̼ÇÀ» ¾ÈÀüÇÏ°Ô ½ÇÇà½Ãų ¼ö ÀÖ´Ù. °¢°¢ °ü¸®µÇ´Â ¾îÇø®ÄÉÀ̼ÇÀº AppDomain?À̶ó°í ºÒ¸®¸ç, ±âº»ÀûÀ¸·Î ¸ðµç EXEÆÄÀϵéÀº ½ÇÇà ½Ã¿¡ ÇϳªÀÇ AppDomain?¸¸À» Æ÷ÇÔÇÑ °¡»ó ¸Þ¸ð¸® °ø°£À» È®º¸ÇÑ´Ù. ÇÏÁö¸¸ CLR ÇÁ·Î¼¼½º È£½ºÆÃÀ» ÅëÇÏ¿© ÇϳªÀÇ OSÇÁ·Î¼¼½º¿¡¼ ´Ù¼öÀÇ AppDomain?À» ½ÇÇàÇÏ´Â °ÍÀÌ °¡´ÉÇÏ´Ù. ÀÌ¿¡ ´ëÇÑ ÀÚ¼¼ÇÑ ³»¿ëÀº 21Àå
JIT ÄÄÆÄÀÏ·¯´Â ¾ÈÀüÇÏÁö ¾ÊÀº ¸Þ¼µå¸¦ ÄÄÆÄÀÏÇÒ ¶§ ¸Þ¼µå¸¦ Æ÷ÇÔÇÑ ¾î¼Àºí¸®°¡ System.Security.Permissions.SecurityPermission? ±ÇÇÑÀ» ºÎ¿© ¹Þ¾Ò´ÂÁö ±×¸®°í ÀÌ ±ÇÇÑ °´Ã¼ÀÇ System.Security.Permissions.SecurityPermissionFlag?Ç÷¡±× °ªÀÌ SkipVerification?À¸·Î ¼³Á¤µÇ¾ú´ÂÁö È®ÀÎÇÑ´Ù. ±×¸®°í ÀÌ Ç÷¡±×°¡ ¼³Á¤µÈ ±ÇÇÑÀ» °¡Áö°í ÀÖ´Ù¸é JIT ÄÄÆÄÀÏ·¯´Â ¾ÈÀüÇÏÁö ¾ÊÀº Äڵ带 ÄÄÆÄÀÏÇÑ ÈÄ ½ÇÇàÇÒ °ÍÀÌ´Ù. ¸¸¾à Ç÷¡±×°¡ ¼³Á¤µÇÁö ¾Ê¾Ò´Ù¸é System.InvalidProgramException?À̳ª System.Security.VerificationException?À» ¹ß»ýÇÔÀ¸·Î½á ÇØ´ç ÄÚµåÀÇ ¼öÇàÀ» Áß´ÜÇÑ´Ù.
PEVerify.exeÀ¯Æ¿¸®Æ¼´Â ¾ÈÀüÇÏÁö ¾ÊÀº Äڵ带 Æ÷ÇÔÇÑ ¸Þ¼µå°¡ ¾î¼Àºí¸®¿¡ Á¤ÀǵǾî ÀÖ´ÂÁö ¸ðµç ¸Þ¼µå¸¦ °Ë»öÇØ ÁÖ´Â ÀÛ¾÷À» ÇÑ´Ù. °ËÁõÀÛ¾÷Àº ¸ðµç Á¾¼Ó ¾î¼Àºí¸®ÀÇ ¸ÞŸµ¥ÀÌÅ͵µ °Ë»çÇϹǷΠÂüÁ¶µÈ ¾î¼Àºí¸®µµ ·Îµå °¡´ÉÇÑ À§Ä¡¿¡ ÀÖ¾î¾ß ÇÑ´Ù.
ILÀº ¼Ò½ºÄڵ带 º¸È£ÇÒ ÃæºÐÇÑ ¾Ë°í¸®ÁòÀ» Á¦°øÇÏÁö ¾Ê´Â´Ù.
ÇâÈÄ DRM(DIgital Rights Management)¼Ö·ç¼ÇÀ» °³¹ßÀÚ¿¡°Ô Á¦°øÇÏ¿© ¾î¼Àºí¸®¿¡ Æ÷ÇÔµÈ ILÄڵ带 º¸È£ÇÒ ¼ö ÀÖ´Â ±â´ÉÀ» Á¦°øÇÏ°Ô µÉ °ÍÀÌ´Ù.
NGen.exeÀº ³×ÀÌÆ¼ºê Äڵ带 »ý»êÇØÁØ´Ù.
¿øÇÏ´Â ¼º´ÉÇâ»óÀ» À§Çؼ´Â ³Ê¹« ¸¹Àº Á¦¾àÁ¶°ÇÀÌ µû¸¥´Ù.
FCL : Framework Class Library
| ³×ÀÓ½ºÆäÀ̽º | ³×ÀÓ½ºÆäÀ̽º¿¡ Æ÷ÇÔµÈ Å¸ÀÔ |
| System | ¸ðµç Á¾·ùÀÇ ¾îÇø®ÄÉÀ̼ǿ¡¼ »ç¿ëÇÒ ¼ö ÀÖ´Â ¿©·¯ ±âº» ŸÀÔ |
| System.Data | µ¥ÀÌÅͺ£À̽º¿Í ÇÁ·Î¼¼½Ì µ¥ÀÌÅÍÀÇ Åë½ÅÀ» À§ÇÑ Å¸ÀÔ |
| System.Drawing | 2D ±×·¡ÇÈÀ» ´Ù·ç±â À§ÇÑ Å¸ÀÔ. À©Æû, À¥Æû¿¡¼ º¸Åë »ç¿ë |
| System.IO | I/O½ºÆ®¸²°ú µð·ºÅ͸®, ±×¸®°í ÆÄÀÏ ÀÛ¾÷¿¡ »ç¿ëµÇ´Â ŸÀÔ |
| System.Net | ÇÏÀ§¼öÁØÀÇ ³×Æ®¿öÅ© Åë½Å°ú ÀϺΠ°øÅë ÀÎÅÍ³Ý ÇÁ·ÎÅäÄÝ ÀÛ¾÷À» À§ÇÑ Å¸ÀÔ |
| System.Runtime.InteropServices? | °ü¸®Äڵ尡 OSÀÇ °ü¸®µÇÁö ¾ÊÀº ±â´É, ¿¹¸¦ µé¾î COM, Win32ÇÔ¼ö, »ç¿ëÀÚDLLµîÀÇ ±â´ÉÀ» ¾×¼¼½º °¡´ÉÇÏ°Ô ÇØÁִ ŸÀÔ |
| System.Security | µ¥ÀÌÅÍ¿Í ¸®¼Ò½º¸¦ º¸È£Çϱâ À§ÇÑ Å¸ÀÔ |
| System.Text | ´Ù¾çÇÑ ÀÎÄÚµù¿¡¼ ÅØ½ºÆ®¸¦ Áö¿ø (¾Æ½ºÅ°, À¯´ÏÄÚµå µî) |
| System.Threading | ºñµ¿±â ÀÛ¾÷À» Áö¿øÇϱâ À§ÇÑ Å¸ÀÔ |
| System.Xml | XML½ºÅ°¸¶¿Í µ¥ÀÌÅ͸¦ ó¸®Çϱâ À§ÇÑ Å¸ÀÔ |
CTS : Common Type System
Çʵå, ¸Þ¼µå, ¼Ó¼º, À̺¥Æ®
ÇÑÁ¤ÀÚ(Private, Family, Assembly, Public, Family or assembly, Family and assembly)
¸ðµç ŸÀÔÀº ÀÌ¹Ì Á¤ÀǵǾî ÀÖ´Â System.Object¸¦ ¹«Á¶°Ç »ó¼Ó ¹Þ´Â´Ù.
System.ObjectŸÀÔÀº ´ÙÀ½°ú °°Àº ±â´ÉÀ» Á¦°øÇÑ´Ù.
using System;
// ÄÄÆÄÀÏ·¯¿¡°Ô CLS ȣȯ¼º È®ÀÎÀ» ¿ä±¸ÇÑ´Ù.
[assembly : CLSCompliant(true)]
namespace SomeLibrary
{
public sealed class someLibraryType // °æ°í : Ŭ·¡½º°¡ publicÀ̹ǷÎ
{
public UInt32 Abc { return 0; } // °æ°í : ¹ÝȯÇü½Ä UInt32´Â CLS±Ô°ÝÀÌ ¾Æ´Ô
public void abc() {} // °æ°í : ´ë¼Ò¹®ÀÚ¸¸ ´Ù¸¥ ÇÔ¼ö¸íÀº CLS±Ô°ÝÀÌ ¾Æ´Ô
private UInt32 ABC() { return 0; } // ¿¡·¯ ¾øÀ½
}
}
CLR¿¡¼´Â ŸÀÔÀÇ ¸ðµç ¸â¹ö°¡ ÇʵåÀ̰ųª ¸Þ¼µå ÀÌ´Ù. ÇÏÁö¸¸ ¾ð¾îÂ÷¿ø¿¡¼ ¿°ÅÇü, ¹è¿, ¼Ó¼º, Àε¦¼, µ¨¸®°ÔÀÌÆ®, À̺¥Æ®, »ý¼ºÀÚ, ¼Ò¸êÀÚ, ¿¬»êÀÚ ¿À¹ö·Îµå, Çü º¯È¯ ¿¬»êÀÚµîÀ» Á¦°øÇØÁÖ´Â °ÍÀÌ´Ù.
using System;
internal sealed class Test
{
// »ý¼ºÀÚ
public Test() {}
// ¼Ò¸êÀÚ
~Test() {}
// ¿¬»êÀÚ ¿À¹ö·Îµå
public static Boolean operator == (Test t1, Test t2) { return true; }
public static Boolean operator != (Test t1, Test t2) { return false; }
public static Test operator + (Test t1, Test t2) { return null; }
// ¼Ó¼º
public String AProperty
{
get { return null; }
set {}
}
// Àε¦¼
public String this [Int32 x]
{
get { return null; }
set {}
}
// À̺¥Æ®
event EventHandler AnEvent;
}
¿ª¾î¼ÀÇØ¼ È®ÀÎÇϱâ
ºñ°ü¸®ÄÚµå¿ÍÀÇ »óÈ£¿¬µ¿ °¡´ÉÇÑ ºÎºÐÀÌ ÀÖ´Ù.
1. °ü¸®Äڵ忡¼ DLL¿¡ Æ÷ÇÔµÈ °ü¸®µÇÁö ¾ÊÀº ÇÔ¼ö È£Ãâ : P/Invoke¸¦ ÀÌ¿ëÇØ¼ ½±°Ô È£Ãâ °¡´É
2. °ü¸®Äڵ忡¼ COM ÄÄÆ÷³ÍÆ®(¼¹ö)ÀÇ »ç¿ë : ŸÀÔ ¶óÀ̺귯¸®¸¦ ÅëÇØ ¾î¼Àºí¸®ÀÇ ÀÚµ¿ »ý¼º °¡´É
3. ºñ°ü¸®Äڵ忡¼ °ü¸®µÇ´Â ŸÀÔ »ç¿ë(¼¹ö) : °á·ÐÀº COM ÄÄÆ÷³ÍÆ® À¯»çÇüÅ·Π¸¸µé¾î³½´Ù´Â °Çµ¥ ÀÚ¼¼ÇÑ °ÍÀº TlbExp?.exe, RegAsm?.exe ÅøÀ» Âü°í
4. C++Äڵ带 ILÄÚµå·Î »ý¼º(Á¦¾àÀÌ ÀÖÀ½, ÀζóÀξî¼À, °¡º¯ÀÎÀÚ, setjump, __disable, _AddressOfReturnAddress?, _ReturnAddress?, __enable °ú °°Àº ·çƾÀÌ »ç¿ëµÈ´Ù¸é ILÄڵ带 »ý¼ºÇÒ ¼ö ¾ø´Ù.)
Chapter 2. ºôµå, ÆÐŰÁö, ¹èÆ÷ ±×¸®°í ¾îÇø®ÄÉÀ̼ǰú ŸÀÔ °ü¸®
¾î¼Àºí¸®´Â ŸÀÔÀ̳ª ¸®¼Ò½º¸¦ Æ÷ÇÔÇÑ Çϳª ÀÌ»óÀÇ ÆÄÀϵéÀÌ ¸ðÀÎ ÆÄÀÏÀÇ Ä÷º¼ÇÀÌ´Ù. Chapter 3. °øÀ¯ ¾î¼Àºí¸®¿Í °·ÂÇÑ À̸§ÀÇ ¾î¼Àºí¸®
Part 2. ŸÀÔ(Type)
Chapter 4. ŸÀÔÀÇ ±âº»
EditText
of this page
(last modified 2009-04-01 19:33:36)
FindPage
by browsing, searching, or an index
Or try one of these actions:
DeletePage,
DeleteUploadedFile,
LikePages,
SpellCheck,
UploadFile