Select the product you need help with
Á¤º¸: _declspec(dllimport) ¹× _declspec(dllexport) ÄÚµå »ç¿ë±â¼ú ÀÚ·á: 132044 - ÀÌ ¹®¼°¡ Àû¿ëµÇ´Â Á¦Ç° º¸±â. ÀÌ ÆäÀÌÁö¿¡¼¿ä¾àÀÌ ¹®¼¿¡¼´Â Microsoft ±â¼ú ÀÚ·áÀÇ ´ÙÀ½ ¹®¼¿¡¼ ´Ù·ê ³»¿ëÀº º¸¿ÏÇÕ´Ï´Ù. 107501 ÀÌ ¹®¼¿¡¼´Â ÀåÁ¡ ¹× _declspec(dllimport) ¹× _declspec(dllexport) ÀÀ¿ë ÇÁ·Î±×·¥¿¡¼ »ç¿ëÇÏ´Â ¸ÞÄ¿´ÏÁò¿¡ ´ëÇØ ¼³¸íÇÕ´Ï´Ù.
(http://support.microsoft.com/kb/107501/EN-US/
)
Visual C++ 32 ºñÆ® __declspec ±âÁØ ´ëüµÈ Á¤º¸: __export Ãß°¡ Á¤º¸Visual C++ 32 ºñÆ® ¹öÀüÀÇ _declspec(dllimport) ¹× _declspec(dllexport) 16ºñÆ® ¹öÀüÀÇ Visual C++¿¡¼ ÀÌÀü¿¡ »ç¿ëÇÑ __export Ű¿öµå¸¦ ¹Ù²Ù´Â ¿¹Á¦ÀÔ´Ï´Ù. Äڵ尡 _declspec(dllimport) »ç¿ëÇÏ¿© ¿Ã¹Ù¸£°Ô ÄÄÆÄÀϵǵµ·Ï ÇÒ ÇÊ¿ä´Â ¾øÁö¸¸ ÀÌ·¸°Ô Çϸé ÄÄÆÄÀÏ·¯°¡ º¸´Ù ³ªÀº Äڵ带 »ý¼ºÇÒ ¼ö ÀÖ°Ô. ÄÄÆÄÀÏ·¯´Â ÄÄÆÄÀÏ·¯°¡ Á¤»óÀûÀÎ °£Á¢ ÂüÁ¶ ¼öÁØÀ» °Ç³Ê¶Û Äڵ带 »ý¼ºÇÒ ¼ö ÀÖµµ·Ï DLL °æ°è¸¦ ½ÊÀÚ ÇÔ¼ö È£Ãâ¿¡¼ Á¸ÀçÇÒ ¼ö, ÇÔ¼ö ¶Ç´Â ¾ÊÀº DLL¿¡ ÀÖ´ÂÁö¿¡ ´ëÇØ È®½ÇÈ÷ ¾Ë°í Àֱ⠶§¹®¿¡ º¸´Ù ³ªÀº Äڵ带 »ý¼ºÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀûÀýÇÑ .DEF ÆÄÀÏÀ» EXPORTS ¼½¼ÇÀ¸·Î _declspec(dllexport) ÇÊ¿äÇÏÁö ¾Ê½À´Ï´Ù. _declspec(dllexport) ½±°Ô .DEF ÆÄÀÏÀ» »ç¿ëÇÏÁö ¾Ê°í .EXE ¶Ç´Â .DLL ÇÔ¼ö¸¦ ³»º¸³¾ ¼ö ÀÖ´Â ¹æ¹ýÀ» Á¦°øÇϱâ À§ÇØ Ãß°¡µÇ¾ú½À´Ï´Ù. ÀÌ ±â»çÀÇ ³ª¸ÓÁö ºÎºÐ¿¡¼´Â ÀÌ·¯ÇÑ ¹®Á¦¸¦ ¸Å¿ì ³·Àº ¼öÁØÀÇ Ã¶ÀúÇÑ Åä·ÐÀ» Á¦°øÇÕ´Ï´Ù. Win32 ½ÇÇà ÆÄÀÏ (ÀÌ½Ä °¡´É Çü½Ä °¡Á®¿À±â¸¦ ¼öÁ¤ÇÏ·Á¸é ´Ù·ç¾ú½À´Ï´Ù ÆäÀÌÁö ¼ö¸¦ ÃÖ¼ÒÈÇϱâ À§ÇØ ¼³°èµÇ¾ú½À´Ï´Ù. ÀÌ·¸°Ô ÇÏ·Á¸é °¡Á®¿À±â ÁÖ¼Ò Å×À̺íÀ̶ó´Â ÇϳªÀÇ Àå¼Ò¿¡ ÀÖ´Â ¸ðµç ÇÁ·Î±×·¥¿¡ ´ëÇÑ ¸ðµç °¡Á®¿À±â ÁÖ¼Ò¸¦ ´Ù½Ã ¹èÄ¡ÇÕ´Ï´Ù. ·Î´õ¸¦ ÀÌ·¯ÇÑ °¡Á®¿À±â¿¡ ¾×¼¼½ºÇÒ ¶§ Çϳª ¶Ç´Â µÎ ÆäÀÌÁö¸¦ ¼öÁ¤ÇÒ ¼ö ÀÖ½À´Ï´Ù. _declspec(dllimport)¿¡ ´ëÇÑ ÇÔ¼ö È£Ãâ »ç¿ë´ÙÀ½ ÄÚµå ¿¹Á¦¿¡¼´Â func1 main() ÇÔ¼ö°¡ Æ÷ÇÔµÈ .EXE ÆÄÀÏÀ» º°µµÀÇ DLL¿¡ ÀÖ´Â ÇÔ¼ö¸¦ °¡Á¤ÇϽʽÿÀ.ÀÌ ÄÚµå´Â _declspec(dllimport) ¾Ê°í ÁÖ¾îÁø: 0x40000000: jmp DWORD PTR __imp_func1 µû¶ó¼ À§ÇØ ±ÇÇÑÀÌ ¾ø´Â °æ¿ì ¸µÄ¿°¡ ½éÅ©¸¦ »ý¼ºÇÏ´Â °æ¿ì ´õ ³ªÀº Àֱ⠶§¹®¿¡ _declspec(dllimport) »ç¿ëÇÏ¿© ´õ ÁÁ½À´Ï´Ù. ½éÅ© ÄÚµå´Â Å©°Ô (RISC ½Ã½ºÅÛ¿¡¼´Â ¿©·¯ ÁöħÀ» ¼öµµ ÀÖÀ½) ¹× ij½Ã ¼º´ÉÀ» ÀúÇϽÃų ¼ö ÀÖ½À´Ï´Ù. DLL¿¡ ÇÔ¼öÀÔ´Ï´Ù ÄÄÆÄÀÏ·¯¿¡ Áö½ÃÇÏ´Â °æ¿ì À̸¦ °£Á¢ È£ÃâÀ» »ý¼ºÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÌ ÄÚµå´Â ÀÌÁ¦: ¹Ý¸é, DLL ³»ºÎ¿¡ ÀÖ´Â ÇÔ¼ö È£ÃâÀÇ °æ¿ì °£Á¢ È£ÃâÀ» »ç¿ëÇÏÁö ¾ÊÀ». ÇÔ¼öÀÇ ÁÖ¼Ò¸¦ ÀÌ¹Ì ¾ËÀ¸½Ê½Ã¿À. ½Ã°£ ¹× °ø°£ ·ÎµåÇϰí Á÷Á¢ È£ÃâÀ» ºü¸£°í ÀÛÀº Ç×»ó µÇµµ·Ï °£Á¢ È£Ãâ Àü¿¡ ÇÔ¼öÀÇ ÁÖ¼Ò¸¦ ÀúÀåÇÒ ÇÊ¿äÇÕ´Ï´Ù. Çϱâ __declspec(dllimport) ¿ÜºÎ¿¡¼ DLL ÇÔ¼ö¸¦ È£ÃâÇÒ ¶§ »ç¿ëÇÒ ÇÒ DLL ÀÚü¸¦. Çϱâ __declspec(dllimport) ÇØ´ç DLLÀ» ºôµåÇÒ ¶§ DLL ³»ºÎ¿¡ ÇÔ¼ö¿¡ »ç¿ëÇÏÁö ¸¶½Ê½Ã¿À. _declspec(dllexport) »ç¿ëÇÏ¿©MicrosoftÀº ÄÄÆÄÀÏ·¯ ³»º¸³»±â À̸§À» ÀÚµ¿À¸·Î »ý¼ºÇÏ´Â .LIB ÆÄÀÏ¿¡ ¹èÄ¡ÇÒ ¼ö ÀÖµµ·Ï 16ºñÆ® ÄÄÆÄÀÏ·¯ ¹öÀü¿¡ __export°¡ µµÀԵǾú½À´Ï´Ù. ÀÌ .LIB ÆÄÀÏÀº DLL¿¡ ¸µÅ©ÇÒ Á¤Àû .LIB¿Í °°Àº ¹Ù·Î »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.Microsoft´Â ÀÌ ÆíÀǸ¦ °è¼ÓÇÏ·Á¸é __declspec(dllexport)¸¦ Ãß°¡Çß½À´Ï´Ù. ±× ¸ñÀûÀº .DEF ÆÄÀÏ¿¡ Çʿ䰡 ¾ø½À´Ï´Ù °³Ã¼ ÆÄÀÏÀ» ³»º¸³»±â Áö½Ã¹®À» Ãß°¡ÇÏ´Â °ÍÀÔ´Ï´Ù. C++ ÇÔ¼ö À̸§ÀÇ µ¥ÄÚ·¹ÀÌÆÃµÈ ÇÒ ¶§ °¡Àå ¸í¹éÇÑ Æí¸®ÇÕ´Ï´Ù. À̸§ µ¥ÄÚ·¹À̼ǿ¡ ´ëÇÑ ¾ø´Â Ç¥ÁØ »ç¾çÀÌ ¾øÀ¸¹Ç·Î ³»º¸³»±â ÇÔ¼öÀÇ À̸§Àº ÄÄÆÄÀÏ·¯ ¹öÀü °£¿¡ º¯°æµÉ ¼ö ÀÖ½À´Ï´Ù. _declspec(dllexport) »ç¿ëÇÏ´Â °æ¿ì DLL ¹× Á¾¼Ó .EXE ÆÄÀÏÀ» ´Ù½Ã ÄÄÆÄÀÏÇÏÁö °æ¿ì¿¡¸¸ °èÁ¤¿¡ ´ëÇÑ ¸í¸í ±ÔÄ¢ º¯°æ ³»¿ëÀÌ ÇÊ¿äÇÕ´Ï´Ù. ¸¹Àº Áö½Ã¹®À» ³»º¸³¾ °°Àº ¼¼ö, NONAME, ¶Ç´Â PRIVATE, .DEF ÆÄÀÏ¿¡ ´ëÇØ¼¸¸ ¸¸µé ¼ö ÀÖÀ¸¸ç .DEF ÆÄÀÏ ¾øÀÌ ÀÌ·¯ÇÑ Æ¯¼ºÀ» ÁöÁ¤ÇÒ ¼ö ÀÖ´Â ¹æ¹ýÀº ¾ø½À´Ï´Ù. ±×·¯³ª .DEF ÆÄÀÏÀ» »ç¿ëÇÏ¿© ¿Ü¿¡µµ _declspec(dllexport) »ç¿ëÇÏ¿© ºôµå ¿À·ù°¡ ¹ß»ýÇÏÁö ¾Ê½À´Ï´Ù. Âü°í ÀÚ·á·Î ÅëÇØ Win32 WINBASE.H Çì´õ ÆÄÀÏÀ» °Ë»öÇϽʽÿÀ. ±âº» ¼³Á¤µÈ __declspec(dllexport) ¹× Çϱâ __declspec(dllimport) »ç¿ë ¿¹Á¦¸¦ Æ÷ÇÔÇÕ´Ï´Ù. _declspec(dllexport) ¹× _declspec(dllimport) ÀÖ´Â µ¥ÀÌÅÍ »ç¿ë°æ¿ì _declspec(dllimport) »ç¿ëÇÏ¿© °£Á¢ ÂüÁ¶ÀÇ °èÃþÀ» Á¦°ÅÇÕ´Ï´Ù ÆíÀǸ¦ Ç׸ñÀ» µ¥ÀÌÅÍÀÔ´Ï´Ù. DLL¿¡¼ µ¥ÀÌÅ͸¦ °¡Á®¿Ã ¶§ ¿©ÀüÈ÷ °¡Á®¿À±â ÁÖ¼Ò Å×À̺íÀ» ÅëÇØ À̵¿ ÇÕ´Ï´Ù. ÀÌ Ãß°¡ ¼öÁØÀÇ °£Á¢ ÂüÁ¶ DLL¿¡¼ ³»º¸³½ µ¥ÀÌÅ͸¦ ¾×¼¼½ºÇÒ ¶§ ¼öÇàÇÒ ÀÛ¾÷À» ±â¾ïÇØ¾ß Çß½À´Ï´Ù _declspec(dllimport) Àü¿¡ Win32 ÀÏ ÀǹÌÇÏ´Â:DLL¿¡¼ µ¥ÀÌÅ͸¦ ÀÚµ¿À¸·Î ³»º¸³»·Á¸é ÀÌ ¼±¾ðÀ» »ç¿ëÇÕ´Ï´Ù: .DEF ÆÄÀÏ »ç¿ëÇϱâ __declspec(dllimport) .DEF ÆÄÀÏÀ» ÇÔ²² »ç¿ëÇϵµ·Ï ¼±ÅÃÇϸé À߸øµÈ ÄÚµù ¹®Á¦°¡ ¹ß»ýÇÒ °¡´É¼ºÀ» ÁÙÀÌ·Á¸é DATA CONSTANT ´ë½Å »ç¿ëÇÒ .DEF ÆÄÀÏÀ» º¯°æÇØ¾ß ÇÕ´Ï´Ù:
Keyword Emits in the import lib Exports
CONSTANT __imp_ulDataInDll ulDataInDll
__ulDataInDll
DATA __imp_ulDataInDll ulDataInDll
CONSTANT¸¦ »ç¿ëÇÏ´Â °æ¿ì ´ÙÀ½ ÄÚµå ±¸¹® Áß Çϳª¸¦ ÇØ´ç ulDataInDll ¾×¼¼½ºÇÒ ¼ö ÀÖ¾ú½À´Ï´Ù. - ¶Ç´Â - ÀÌ °æ¿ì °èÁ¤ CONSTANT .DEF ÆÄÀÏ¿¡ ÀÖ´Â º¼ °æ¿ì ÇöÀç Visual C++ ¸µÄ¿ °æ°í°¡ ¹ß»ýÇÕ´Ï´Ù. CONSTANT »ç¿ëÇÒ °æ¿ì¿¡¸¸ ½ÇÁ¦ Çì´õ ÆÄÀÏÀ» dllimport ÇÁ·ÎÅäŸÀÔ¿¡ ´ëÇÑ ¸ñ·Ï ¾ÊÀº ÀϺΠ°³Ã¼ ÆÄÀÏÀ» ´Ù½Ã ÄÄÆÄÀÏÇØ¾ß ¼ö ¾ø´Â °æ¿ì ¶§¹®ÀÔ´Ï´Ù. ÂüÁ¶´ÙÀ½ Visual C++ ¿Â¶óÀÎ ¼³¸í¼ »ó´çÇÑ ¾çÀÇ dllexport, dllimport ÀúÀå¼Ò Ŭ·¡½º Ư¼ºÀ» Á¦°øÇÕ´Ï´Ù. ÇÁ·Î±×·¡¹Ö ±â¼ú ÂüÁ¶ "¸¸µé±â DLL¿¡ ´ëÇÑ Win32" Àå¿¡¼ "The dllexport, dllimport Ư¼º" ¹× C++ ¾ð¾î ÂüÁ¶ "Microsoft °ü·Ã ÇÑÁ¤ÀÚ" ÀåÀÇ »ç¿ë dllimport ¹× C++ dllexport"Ç׸ñ ¹× ±âÈ£ ³»º¸³»±â Ç׸ñÀÌ Æ÷ÇԵǾî ÀÖ½À´Ï´Ù. öÀúÇÑ ¸ñ·ÏÀº °ü·ÃµÈ Ç׸ñÀ» ¿Â¶óÀÎ ¼³¸í¼ÀÇ "dllimport" ¶Ç´Â "dllexport" °Ë»öÇÕ´Ï´Ù. ÀÚ¼¼ÇÑ ³»¿ëÀº Microsoft ±â¼ú ÀÚ·áÀÇ ´ÙÀ½ ¹®¼¸¦ ÂüÁ¶ÇϽʽÿÀ. 90530
(http://support.microsoft.com/kb/90530/EN-US/
)
DLL ¶Ç´Â ÀÀ¿ë ÇÁ·Î±×·¥ µ¥ÀÌÅÍ ³»º¸³»±â ¹æ¹ý 107501
(http://support.microsoft.com/kb/107501/EN-US/
)
Visual C++ 32 ºñÆ® __declspec ±âÁØ ´ëüµÈ Á¤º¸: __export ¼Ó¼º±â¼ú ÀÚ·á: 132044 - ¸¶Áö¸· °ËÅä: 2003³â 12¿ù 2ÀÏ È¿äÀÏ - ¼öÁ¤: 2.0 º» ¹®¼ÀÇ Á¤º¸´Â ´ÙÀ½ÀÇ Á¦Ç°¿¡ Àû¿ëµË´Ï´Ù.
±â°è ¹ø¿ªµÈ ¹®¼ Áß¿ä: º» ¹®¼´Â Àü¹® ¹ø¿ª°¡°¡ ¹ø¿ªÇÑ °ÍÀÌ ¾Æ´Ï¶ó Microsoft ±â°è ¹ø¿ª ¼ÒÇÁÆ®¿þ¾î·Î ¹ø¿ªÇÑ °ÍÀÔ´Ï´Ù. Microsoft´Â ¹ø¿ª°¡°¡ ¹ø¿ªÇÑ ¹®¼ ¹× ±â°è ¹ø¿ªµÈ ¹®¼¸¦ ¸ðµÎ Á¦°øÇϹǷΠMicrosoft ±â¼ú ÀÚ·á¿¡ ÀÖ´Â ¸ðµç ¹®¼¸¦ Çѱ۷ΠÁ¢ÇÒ ¼ö ÀÖ½À´Ï´Ù. ±×·¯³ª ±â°è ¹ø¿ª ¹®¼°¡ Ç×»ó ¿Ïº®ÇÑ °ÍÀº ¾Æ´Õ´Ï´Ù. µû¶ó¼ ±â°è ¹ø¿ª ¹®¼¿¡´Â ¸¶Ä¡ ¿Ü±¹ÀÎÀÌ Çѱ¹¾î·Î ¸»ÇÒ ¶§ ½Ç¼ö¸¦ ÇÏ´Â °Íó·³ ¾îÈÖ, ±¸¹® ¶Ç´Â ¹®¹ý¿¡ ¿À·ù°¡ ÀÖÀ» ¼ö ÀÖ½À´Ï´Ù. Microsoft´Â ³»¿ë»óÀÇ ¿À¿ª ¶Ç´Â Microsoft °í°´ÀÌ ÀÌ·¯ÇÑ ¿À¿ªÀ» »ç¿ëÇÔÀ¸·Î½á ¹ß»ýÇÏ´Â ºÎ Á¤È®¼º, ¿À·ù ¶Ç´Â ¼ÕÇØ¿¡ ´ëÇØ Ã¥ÀÓÀ» ÁöÁö ¾Ê½À´Ï´Ù. Microsoft´Â ÀÌ·¯ÇÑ ¹®Á¦¸¦ ÇØ°áÇϱâ À§ÇØ ±â°è ¹ø¿ª ¼ÒÇÁÆ®¿þ¾î¸¦ ÀÚÁÖ ¾÷µ¥ÀÌÆ®Çϰí ÀÖ½À´Ï´Ù. | ±â¼ú ÀÚ·á ¹ø¿ª |





À§·Î °¡±â








