¿Ïº®ÇÑ ¼¼°è¿¡¼ ÇÁ·Î¼¼½º¿¡ ´Ù¸¥ ÇÁ·Î¼¼½º¸¦ Á¾·áÇϵµ·Ï ÇÁ·Î¼¼½º°£ Åë½Å ÀϺΠÆûÀ» ÅëÇØ ¿äûÇÒ ¼ö ÀÖ½À´Ï´Ù. ÇÏÁö¸¸ ¿øÇÏ´Â Á¾·á ÀÀ¿ë ÇÁ·Î±×·¥ÀÇ ¼Ò½º ¼öÁØÀÇ ÄÁÆ®·ÑÀÌ ÀÖ´Â °æ¿ì ´ÙÀ½ »ç¿ëÀÚ°¡ ÀÌ ¿É¼ÇÀÌ ¾øÀ» ¼ö ÀÖ½À´Ï´Ù. Win32¿¡¼ ÀÀ¿ë ÇÁ·Î±×·¥À» Á¾·áÇÒ º¸ÀåµÈ "Ŭ¸°" ¹æ¹ýÀÌ ÀÖÁö¸¸ ÀÀ¿ë ÇÁ·Î±×·¥¿¡¼ ¸®¼Ò½º¸¦ Á¤¸®ÇÏ´Â °¡Àå ÁÁÀº ¹æ¹ýÀº »ç¿ëÇÏ´Â º¸ÀåÇϱâ À§ÇØ ÃëÇÒ ¼ö ÀÖ´Â ¹æ¹ýÀÌ ÀÖ½À´Ï´Ù.
32 ºñÆ® ÇÁ·Î¼¼½º ¹× Windows 95¿¡¼ 16ºñÆ® ÇÁ·Î¼¼½º
Win32¿¡¼ ¿î¿µ üÁ¦¸¦ Á¾·áÇÒ ¶§ ÇÁ·Î¼¼½º°¡ ¼ÒÀ¯ÇÑ ¸®¼Ò½º¸¦ Á¤¸®ÇÏ´Â µ¥ ¾à¼ÓÇÕ´Ï´Ù. ±×·¯³ª ÀÌ ÇÁ·Î¼¼½º ÀÚü¸¦ ¿ø°Ý ¿¬°áÀ» ÅëÇØ ÃÖÁ¾ Åë½Å µð½ºÅ©·Î Á¤º¸ÀÇ ¸ðµç ÃÖÁ¾ Ç÷¯½Ã ÀÛ¾÷À» ¼öÇàÇÒ ¼ö ÀÖ´Â ±âȸ¸¦ °¡Áø ¾ÊÀ¸¸ç ÇØ´ç ÇÁ·Î¼¼½ºÀÇ ÀǹÌÇմϱî ÀǹÌÇÏÁö´ÂÁö ¾Ê½À´Ï´Ù, DLLÀÇ PROCESS_DETACH Äڵ带 ½ÇÇàÇÒ ¼ö ÀÖ´Â ±âȸ¸¦ °®°Ô µË´Ï´Ù. Windows 95 ¹× Windows NT¿¡¼ ÀÀ¿ë ÇÁ·Î±×·¥À» Á¾·áÇÏ´Â ¹æÁöÇϱâ À§ÇØ »ç¿ëÇÏ´Â °ÍÀÌ ÀϹÝÀûÀ¸·Î ÁÁ½À´Ï´Ù ÀÌÀ¯ÀÔ´Ï´Ù.
¹Ýµå½Ã ÇÁ·Î¼¼½º¸¦ Á¾·áÇØ¾ß ÇÕ´Ï´Ù °æ¿ì ´ÙÀ½°ú °°ÀÌ ÇϽʽÿÀ.
- ¿øÇÏ´Â Á¾·á ÇÁ·Î¼¼½º°¡ ¼ÒÀ¯ÇÏ´Â ¸ðµç ÃÖ»óÀ§ â¿¡ ´ëÇÑ WM_CLOSE¸¦ °Ô½ÃÇϽʽÿÀ. ¸¹Àº Windows ÀÀ¿ë ÇÁ·Î±×·¥À» Á¾·áÇÏ´Â ÀÇÇØ ÀÌ ¸Þ½ÃÁö¿¡ ÀÀ´äÇÕ´Ï´Ù.
Âü°í: WM_CLOSE ¼ö ÀÖ´Â ÄÜ¼Ö ÀÀ¿ë ÇÁ·Î±×·¥ÀÇ ÀÀ´ä Á¦¾î 󸮱Ⱑ ¼³Ä¡µÇ¾î ÀÖ´Â ¿©ºÎ¿¡ µû¶ó ´Þ¶óÁý´Ï´Ù.
EnumWindows()¸¦ ´ë»ó â ÇÚµéÀ» ãÀ» ¼ö ÀÖ½À´Ï´Ù. Äݹé ÇÔ¼ö¸¦ È®ÀÎÇϰí ÇØ´ç âÀ» ÇÁ·Î¼¼½º ID Á¾·á ÇÁ·Î¼¼½º¸¦ ã½À´Ï´Ù. GetWindowThreadProcessId() È£ÃâÇÏ¿© ÀÌ ÀÛ¾÷À» ¼öÇàÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÏÄ¡ÇÏ´Â ¼³Á¤ÇÑ ÈÄ¿¡´Â PostMessage() ¶Ç´Â SendMessageTimeout() WM_CLOSE ¸Þ½ÃÁö âÀ» °Ô½ÃÇÒ ¼ö ÀÖ½À´Ï´Ù. - WaitForSingleObject()¸¦ »ç¿ëÇÏ¿© ÇÁ·Î¼¼½º¿¡ ´ëÇÑ ÇÚµéÀ» ±â´Ù¸³´Ï´Ù. Àֱ⠶§¹®¿¡ ´ëºÎºÐÀÇ °æ¿ì ÇØ´ç WM_CLOSE ÀÀ¿ë ÇÁ·Î±×·¥ÀÌ Á¾·áµË´Ï´ÙÁö ¾Ê½À´Ï´Ù ½Ã°£ Ãʰú °ªÀ» ±â´Ù·Á¾ß ÇÕ´Ï´Ù. Á¦ÇÑ ½Ã°£ µ¿¾È¸¸ ÇÕ´Ï´Ù (»ç¿ëÀÚ°¡ ¸ðµç ´ëÈ ÀÀ´äÇÒ ¼ö ÀÖµµ·Ï ÇÔ²² ¶Ç´Â WaitForSingleObject(), SendMessageTimeout()) ÇÔ²² ÀÖ´Â »óÀÚ¸¦ WM_CLOSE ¸Þ½ÃÁö¿¡ ´ëÇÑ ÀÀ´äÀ¸·Î ¸¸µé¾ú½À´Ï´Ù.
- WAIT_OBJECT_0 ¹Ýȯ °ªÀÌ ¾ø´Â °æ¿ì ´ÙÀ½ ÀÀ¿ë ÇÁ·Î±×·¥ ÀÚü¿¡ ¿ÏÀüÈ÷ ´ÝÈù. ´ÙÀ½ ¹Ýȯ °ªÀÌ WAIT_TIMEOUT ÀÎ °æ¿ì, ÀÀ¿ë ÇÁ·Î±×·¥ Á¾·á TerminateProcess()¸¦ »ç¿ëÇØ¾ß ÇÕ´Ï´Ù.
Âü°í: getting3 ±âŸ WaitForSingleObject() ´ÙÀ½ WAIT_OBJECT_0 ¶Ç´Â WAIT_TIMEOUT¿¡¼ ¹Ýȯ °ªÀÌ ÀÖ´Â °æ¿ì GetLastError() ¿øÀÎÀ» È®ÀÎÇÒ ¼ö ÀÖ½À´Ï´Ù.
´ÙÀ½ ÀÌ ´Ü°è¿¡ µû¶ó »ç¿ëÀÚ°¡ ÀÀ¿ë ÇÁ·Î±×·¥À» °¡´ÉÇÑ ÃÖ»óÀÇ ±âȸ¸¦ ¿ÏÀüÈ÷ (À̿ܿ¡´Â IPC ¶Ç´Â »ç¿ëÀÚ °³ÀÔ) Á¾·á ºÎ¿©ÇÕ´Ï´Ù.
Windows NTÀÇ 16ºñÆ® ¹®Á¦
±×·¯³ª ÀÛ¾÷ Windows 95¿¡¼ 16 ºñÆ® ÀÀ¿ë ÇÁ·Î±×·¥¿¡ ´ëÇØ ¾ÕÀÇ ´Ü°è¸¦, Windows NT 16 ºñÆ® ÀÀ¿ë ÇÁ·Î±×·¥À» ¸Å¿ì ´Ù¸£°Ô ÀÛµ¿ÇÕ´Ï´Ù.
Windows NT¿¡¼ ¸ðµç 16 ºñÆ® ÀÀ¿ë ÇÁ·Î±×·¥Àº °¡»ó DOS ½Ã½ºÅÛ (VDM) ¿¡¼ ½ÇÇàµË´Ï´Ù. Windows NTÀÇ Win32 ÇÁ·Î¼¼½º (NTVDM)ÀÌ ÀÌ VDMÀÌ ½ÇÇàµË´Ï´Ù. NTVDM ÇÁ·Î¼¼½ºÀÇ ÇÁ·Î¼¼½º ID°¡ ÀÖ½À´Ï´Ù. ´Ù¸¥ Win32 ÇÁ·Î¼¼½º °æ¿ìó·³ OpenProcess() ÅëÇØ ÇÁ·Î¼¼½º ÇÚµéÀ» ¾òÀ» ¼ö ÀÖ½À´Ï´Ù. ±×·³¿¡µµ ºÒ±¸Çϰí VDM¿¡¼ ½ÇÇà ÁßÀÎ 16ºñÆ® ÀÀ¿ë ÇÁ·Î±×·¥À» ÇÁ·Î¼¼½º ID¸¦ °¡Áø ¹× µû¶ó¼ »ç¿ëÇϸé ÇÁ·Î¼¼½º ÇÚµé OpenProcess()¿¡¼ °¡Á®¿Ã ¼ö ¾ø½À´Ï´Ù. °¢ 16ºñÆ® ÀÀ¿ë ÇÁ·Î±×·¥¿¡¼ VDM¿¡ 16ºñÆ® ÀÛ¾÷ ó¸® ¹× 32 ºñÆ® ½º·¹µå ½ÇÇàÀÌ ÀÖ½À´Ï´Ù. ÇÚµé ¹× ½º·¹µå ID VDMEnumTaskWOWEx() ÇÔ¼ö È£ÃâÀ» ÅëÇØ ãÀ» ¼ö ÀÖ½À´Ï´Ù. ÀÚ¼¼ÇÑ ³»¿ëÀº Microsoft ±â¼ú ÀÚ·áÀÇ ´ÙÀ½ ¹®¼¸¦ ÂüÁ¶ÇϽʽÿÀ.
175030
(http://support.microsoft.com/kb/175030/EN-US/
)
Win32 ÀÀ¿ë ÇÁ·Î±×·¥ÀÇ ¿°Å ¹æ¹ý
Windows NTÀÇ 16ºñÆ® ÀÀ¿ë ÇÁ·Î±×·¥À» Á¾·áÇÏ´Â °æ¿ì »ç¿ëÀÚÀÇ Ã¹ ¹øÂ°, ¹× °¡Àå °£´ÜÇÑ ¿É¼ÇÀº Àüü NTVDM ÇÁ·Î¼¼½º¸¦ Á¾·áÇÒ ¼ö ÀÖ½À´Ï´Ù. À§¿¡¼ ¼³¸íÇÑ ´Ü°è¸¦ ¼öÇàÇÏ¿© ÀÌ ÀÛ¾÷À» ¼öÇàÇÒ ¼ö ÀÖ½À´Ï´Ù. NTVDM ÇÁ·Î¼¼½ºÀÇ ÇÁ·Î¼¼½º ID¸¦ ¾Ë¾Æ¾ß ÇÒ À§¿¡¼ ¾ð±ÞÇÑ ÀÖ´Â NTVDM ÇÁ·Î¼¼½º¸¦ ID¸¦ ãÀ» ¼ö ÀÖ´Â KB ¹®¼
175030
(http://support.microsoft.com/kb/175030/EN-US/
)
ÂüÁ¶ÇϽʽÿÀ. ÀÌ ¹æ¹ýÀÇ ´ÜÁ¡Àº ÇØ´ç VDM ½ÇÇà ÁßÀÎ ¸ðµç 16 ºñÆ® ÀÀ¿ë ÇÁ·Î±×·¥À» ´Ý´Â °ÍÀÔ´Ï´Ù. ±×·± ´ÙÀ½ ÀÌ·¯ÇÑ ¸ñÇ¥¸¦ ¾Æ´Ï¸é ´Ù¸¥ Á¢±Ù ÇÕ´Ï´Ù.
´ÜÀÏ 16 ºñÆ® ÀÀ¿ë ÇÁ·Î±×·¥ ³»¿¡¼ NTVDM ÇÁ·Î¼¼½º Á¾·áÇÒ ¼ö ¿øÇÒ °æ¿ì ´ÙÀ½À» ¼öÇàÇØ¾ß ÇÒ ´Ü°è´Â ´ÙÀ½°ú °°½À´Ï´Ù.
- ¸ðµç ÃÖ»óÀ§ â¿¡ ÇÁ·Î¼¼½º¿¡ ÀÇÇØ ¼ÒÀ¯Çϰí Á¾·á 16 ºñÆ® ÀÛ¾÷ µ¿ÀÏÇÑ ¼ÒÀ¯ ½º·¹µå ID¸¦ °®°í ÀÖ´Â WM_CLOSE¸¦ °Ô½ÃÇϽʽÿÀ. ÀÌ·¸°Ô ÇÏ´Â °¡Àå È¿°úÀûÀÎ ¹æ¹ýÀº EnumWindows() »ç¿ëÇÏ´Â °ÍÀÔ´Ï´Ù. Äݹé ÇÔ¼ö¿¡ âÀÇ ÇÁ·Î¼¼½º ID¿Í ½º·¹µå ID¸¦ Á¾·á 16 ºñÆ® ÀÛ¾÷À» ÀÏÄ¡ÇÏ´ÂÁö È®ÀÎÇϽʽÿÀ. 16ºñÆ® ÀÀ¿ë ÇÁ·Î±×·¥ÀÌ ½ÇÇàµÇ´Â NTVDM ÇÁ·Î¼¼½ºÀÇ ÇÁ·Î¼¼½º ID¸¦ ¼ö ÀÖµµ·Ï ÇÁ·Î¼¼½º ID¸¦ À̵¿ÇÏ´Â ±â¾ïÇØ¾ß ÇÕ´Ï´Ù.
- ½º·¹µå ID¸¦ ÀÖÁö¸¸ 16ºñÆ® ÇÁ·Î¼¼½º Á¾·á¸¦ ±â´Ù¸®´Â ¹æ¹ýÀÌ ¾ø½À´Ï´Ù. °á°úÀûÀ¸·Î, ÀÓÀÇÀÇ ±æÀ̸¦ ½Ã°£ (Ŭ¸° Á¾·á Çã¿ë)À» À§ÇÑ ±â´Ù·È´Ù°¡ ±×·¡µµ ÀÀ¿ë ÇÁ·Î±×·¥À» Á¾·áÇÏ´Â µ¥ ½ÃµµÇϽʽÿÀ ÇÕ´Ï´Ù. ÀÀ¿ë ÇÁ·Î±×·¥ÀÌ ÀÌ¹Ì Á¾·áµÇ¾ú´ÂÁö ´ÙÀ½ ÀÌ ¾Æ¹« ÀÛ¾÷µµ ¼öÇàÇÕ´Ï´Ù. Á¾·áµÇÁö ¾ÊÀº ÀÀ¿ë ÇÁ·Î±×·¥À» Á¾·áÇÕ´Ï´Ù.
- ãÀ» ¼ö ÀÖ´Â Vdmdbg.dll VDMTerminateTaskWOW() ¶ó´Â ÇÔ¼ö¸¦ »ç¿ëÇÏ¿© ÀÀ¿ë ÇÁ·Î±×·¥À» Á¾·áÇϽʽÿÀ. ÇÁ·Î¼¼½º ID¸¦ »ç¿ëÇÏ¿© VDM ¹× 16 ºñÆ® ÀÛ¾÷ÀÇ ÀÛ¾÷ ¹øÈ£¸¦ »ç¿ëÇÕ´Ï´Ù.
ÀÌ ¹æ¹ýÀ» »ç¿ëÇϸé Windows NTÀÇ VDM ³»¿¡¼ ´ÜÀÏ 16 ºñÆ® ÀÀ¿ë ÇÁ·Î±×·¥À» Á¾·áÇÒ ¼ö ÀÖ½À´Ï´Ù. ±×·¯³ª 16ºñÆ® Windows ¸Å¿ì ÁÁÀº Á¾·áµÈ ÀÛ¾÷ÀÇ ¸®¼Ò½º¸¦ Á¤¸®ÇÏ´Â ½Ã ¾Æ´Ï°í µÑ ´Ù ÀÖ´Â VDM ½ÇÇàÇÏ´Â WOWExec. Windows NTÀÇ 16ºñÆ® ÀÀ¿ë ÇÁ·Î±×·¥À» Á¾·áÇÏ´Â µ¥ cleanest °¡´ÉÇÑ ¹æ¹ýÀ» ã´Â °æ¿ì Àüü VDM ÇÁ·Î¼¼½º¸¦ Á¾·áÇÏ¸é °í·ÁÇØ¾ß ÇÕ´Ï´Ù. Âü°í: ³ªÁß¿¡ Á¾·áÇÒ ¼ö ÀÖ´Â 16 ºñÆ® ÀÀ¿ë ÇÁ·Î±×·¥À» ½ÃÀÛÇÏ´Â °æ¿ì, ´ÙÀ½, CREATE_SEPARATE_WOW_VDMÀ» CreateProcess() ÇÔ²² »ç¿ëÇϽʽÿÀ.
¿¹Á¦ ÄÚµå
»ùÇà ÄÚµå´Â ´ÙÀ½ µÎ ÇÔ¼ö¸¦ »ç¿ëÇÏ´Â 16ºñÆ® ¹× 32ºñÆ® ÀÀ¿ë ÇÁ·Î±×·¥Àº À§¿¡¼ ¼³¸íÇÑ ±â¼úÀ» ±¸ÇöÇÏ´Â: TerminateApp() ¹× Terminate16App(). TerminateApp() (¹Ð¸®ÃÊ´Â ¿¡¼) 32ºñÆ® ÇÁ·Î¼¼½º ID ¹× ½Ã°£ Á¦ÇÑÀ» »ç¿ëÇÕ´Ï´Ù. Terminate16App()ÀÔ´Ï´Ù. µÎ ÇÔ¼ö ¸ðµÎ ÀÌ·¯ÇÑ ÀÌÁø ȣȯ Windows NT ¹× Windows 95 °ÉÃÄ ¼ö ÀÖµµ·Ï DLL ÇÔ¼ö¿¡ ¸í½ÃÀû ¸µÅ©¸¦ »ç¿ëÇÕ´Ï´Ù.
//******************
//Header
//******************
#include <windows.h>
#define TA_FAILED 0
#define TA_SUCCESS_CLEAN 1
#define TA_SUCCESS_KILL 2
#define TA_SUCCESS_16 3
DWORD WINAPI TerminateApp( DWORD dwPID, DWORD dwTimeout ) ;
DWORD WINAPI Terminate16App( DWORD dwPID, DWORD dwThread,
WORD w16Task, DWORD dwTimeout );
//******************
//Source
//******************
#include "TermApp.h"
#include <vdmdbg.h>
typedef struct
{
DWORD dwID ;
DWORD dwThread ;
} TERMINFO ;
// Declare Callback Enum Functions.
BOOL CALLBACK TerminateAppEnum( HWND hwnd, LPARAM lParam ) ;
BOOL CALLBACK Terminate16AppEnum( HWND hwnd, LPARAM lParam ) ;
/*----------------------------------------------------------------
DWORD WINAPI TerminateApp( DWORD dwPID, DWORD dwTimeout )
Purpose:
Shut down a 32-Bit Process (or 16-bit process under Windows 95)
Parameters:
dwPID
Process ID of the process to shut down.
dwTimeout
Wait time in milliseconds before shutting down the process.
Return Value:
TA_FAILED - If the shutdown failed.
TA_SUCCESS_CLEAN - If the process was shutdown using WM_CLOSE.
TA_SUCCESS_KILL - if the process was shut down with
TerminateProcess().
NOTE: See header for these defines.
----------------------------------------------------------------*/
DWORD WINAPI TerminateApp( DWORD dwPID, DWORD dwTimeout )
{
HANDLE hProc ;
DWORD dwRet ;
// If we can't open the process with PROCESS_TERMINATE rights,
// then we give up immediately.
hProc = OpenProcess(SYNCHRONIZE|PROCESS_TERMINATE, FALSE,
dwPID);
if(hProc == NULL)
{
return TA_FAILED ;
}
// TerminateAppEnum() posts WM_CLOSE to all windows whose PID
// matches your process's.
EnumWindows((WNDENUMPROC)TerminateAppEnum, (LPARAM) dwPID) ;
// Wait on the handle. If it signals, great. If it times out,
// then you kill it.
if(WaitForSingleObject(hProc, dwTimeout)!=WAIT_OBJECT_0)
dwRet=(TerminateProcess(hProc,0)?TA_SUCCESS_KILL:TA_FAILED);
else
dwRet = TA_SUCCESS_CLEAN ;
CloseHandle(hProc) ;
return dwRet ;
}
/*----------------------------------------------------------------
DWORD WINAPI Terminate16App( DWORD dwPID, DWORD dwThread,
WORD w16Task, DWORD dwTimeout )
Purpose:
Shut down a Win16 APP.
Parameters:
dwPID
Process ID of the NTVDM in which the 16-bit application is
running.
dwThread
Thread ID of the thread of execution for the 16-bit
application.
w16Task
16-bit task handle for the application.
dwTimeout
Wait time in milliseconds before shutting down the task.
Return Value:
If successful, returns TA_SUCCESS_16
If unsuccessful, returns TA_FAILED.
NOTE: These values are defined in the header for this
function.
NOTE:
You can get the Win16 task and thread ID through the
VDMEnumTaskWOW() or the VDMEnumTaskWOWEx() functions.
----------------------------------------------------------------*/
DWORD WINAPI Terminate16App( DWORD dwPID, DWORD dwThread,
WORD w16Task, DWORD dwTimeout )
{
HINSTANCE hInstLib ;
TERMINFO info ;
// You will be calling the functions through explicit linking
// so that this code will be binary compatible across
// Win32 platforms.
BOOL (WINAPI *lpfVDMTerminateTaskWOW)(DWORD dwProcessId,
WORD htask) ;
hInstLib = LoadLibraryA( "VDMDBG.DLL" ) ;
if( hInstLib == NULL )
return TA_FAILED ;
// Get procedure addresses.
lpfVDMTerminateTaskWOW = (BOOL (WINAPI *)(DWORD, WORD ))
GetProcAddress( hInstLib, "VDMTerminateTaskWOW" ) ;
if( lpfVDMTerminateTaskWOW == NULL )
{
FreeLibrary( hInstLib ) ;
return TA_FAILED ;
}
// Post a WM_CLOSE to all windows that match the ID and the
// thread.
info.dwID = dwPID ;
info.dwThread = dwThread ;
EnumWindows((WNDENUMPROC)Terminate16AppEnum, (LPARAM) &info) ;
// Wait.
Sleep( dwTimeout ) ;
// Then terminate.
lpfVDMTerminateTaskWOW(dwPID, w16Task) ;
FreeLibrary( hInstLib ) ;
return TA_SUCCESS_16 ;
}
BOOL CALLBACK TerminateAppEnum( HWND hwnd, LPARAM lParam )
{
DWORD dwID ;
GetWindowThreadProcessId(hwnd, &dwID) ;
if(dwID == (DWORD)lParam)
{
PostMessage(hwnd, WM_CLOSE, 0, 0) ;
}
return TRUE ;
}
BOOL CALLBACK Terminate16AppEnum( HWND hwnd, LPARAM lParam )
{
DWORD dwID ;
DWORD dwThread ;
TERMINFO *termInfo ;
termInfo = (TERMINFO *)lParam ;
dwThread = GetWindowThreadProcessId(hwnd, &dwID) ;
if(dwID == termInfo->dwID && termInfo->dwThread == dwThread )
{
PostMessage(hwnd, WM_CLOSE, 0, 0) ;
}
return TRUE ;
}
±â¼ú ÀÚ·á: 178893 - ¸¶Áö¸· °ËÅä: 2004³â 7¿ù 13ÀÏ È¿äÀÏ - ¼öÁ¤: 2.4
º» ¹®¼ÀÇ Á¤º¸´Â ´ÙÀ½ÀÇ Á¦Ç°¿¡ Àû¿ëµË´Ï´Ù.
- Microsoft Win32 Application Programming Interface?À»(¸¦) ´ÙÀ½°ú ÇÔ²² »ç¿ëÇßÀ» ¶§
- Microsoft Windows 95
- Microsoft Windows NT 4.0
- the operating system: Microsoft Windows 2000
- the operating system: Microsoft Windows XP
| kbmt kbhowto kbkernbase kbthread KB178893 KbMtko |
±â°è ¹ø¿ªµÈ ¹®¼Áß¿ä: º» ¹®¼´Â Àü¹® ¹ø¿ª°¡°¡ ¹ø¿ªÇÑ °ÍÀÌ ¾Æ´Ï¶ó Microsoft ±â°è ¹ø¿ª ¼ÒÇÁÆ®¿þ¾î·Î ¹ø¿ªÇÑ °ÍÀÔ´Ï´Ù. Microsoft´Â ¹ø¿ª°¡°¡ ¹ø¿ªÇÑ ¹®¼ ¹× ±â°è ¹ø¿ªµÈ ¹®¼¸¦ ¸ðµÎ Á¦°øÇϹǷΠMicrosoft ±â¼ú ÀÚ·á¿¡ ÀÖ´Â ¸ðµç ¹®¼¸¦ Çѱ۷ΠÁ¢ÇÒ ¼ö ÀÖ½À´Ï´Ù. ±×·¯³ª ±â°è ¹ø¿ª ¹®¼°¡ Ç×»ó ¿Ïº®ÇÑ °ÍÀº ¾Æ´Õ´Ï´Ù. µû¶ó¼ ±â°è ¹ø¿ª ¹®¼¿¡´Â ¸¶Ä¡ ¿Ü±¹ÀÎÀÌ Çѱ¹¾î·Î ¸»ÇÒ ¶§ ½Ç¼ö¸¦ ÇÏ´Â °Íó·³ ¾îÈÖ, ±¸¹® ¶Ç´Â ¹®¹ý¿¡ ¿À·ù°¡ ÀÖÀ» ¼ö ÀÖ½À´Ï´Ù. Microsoft´Â ³»¿ë»óÀÇ ¿À¿ª ¶Ç´Â Microsoft °í°´ÀÌ ÀÌ·¯ÇÑ ¿À¿ªÀ» »ç¿ëÇÔÀ¸·Î½á ¹ß»ýÇÏ´Â ºÎ Á¤È®¼º, ¿À·ù ¶Ç´Â ¼ÕÇØ¿¡ ´ëÇØ Ã¥ÀÓÀ» ÁöÁö ¾Ê½À´Ï´Ù. Microsoft´Â ÀÌ·¯ÇÑ ¹®Á¦¸¦ ÇØ°áÇϱâ À§ÇØ ±â°è ¹ø¿ª ¼ÒÇÁÆ®¿þ¾î¸¦ ÀÚÁÖ ¾÷µ¥ÀÌÆ®Çϰí ÀÖ½À´Ï´Ù.