|
INtime
Tech
¡¸INtime documentary¡¹~INtime ÃʽÉÀÚ
üÇè±â
| NTÃø ±×·¡ÇÁ Ç¥½Ã ¾îÇø®ÄÉÀÌ¼Ç |
 |
10¿ù 28ÀÏ···NTX ¾îÇø®ÄÉÀÌ¼Ç ÀÛ¼º |
|
INtimeÃø ¾îÇø®ÄÉÀ̼Ç/NTÃø ¾îÇø®ÄÉÀ̼ǰ£, ȤÀº INtime ¾îÇø®ÄÉÀ̼Ç/ INtime ¾îÇø®ÄÉÀ̼ǰ£¿¡ ¸ÞÀÏ ¹Ú½º¸¦ ÅëÇØ¼ Åë½ÅÀ»
½Ç½ÃÇÏ´Â °æ¿ì, ¾î´À ÂÊÀÎÁö ÇÑÆí¿¡ ¼ÓÇÏ´Â ¸ÞÀÏ ¹Ú½ºÀÇ ÇÚµéÀ» ÃëµæÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù.
|
| INtime·NTX°£ Åë½ÅÀÇ ¼ö¹ý |
| ¸ÞÀÏ ¹Ú½ºÀÇ ¿ÀºêÁ§Æ® ÇÚµéÀÇ Ãëµæ ¹æ¹ý |
¡¡CatalogRtHandle¿Í LookupRtHandle
·¸ÞÀÏ ¹Ú½º¸¦ Æ÷ÇÔÇÑ ¾îÇø®ÄÉÀ̼ÇÀº ÀÎÅÍÆäÀ̽º¿ëÀÇ ¸ÞÀÏ ¹Ú½ºÀÇ Çڵ鷯ġ¸¦ ÀÖ´Â À̸§À¸·Î
īŻ·Î±× ÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù. īŻ·Î±× ÇÏ´Â À§Ä¡´Â, ·çÆ® µð·ºÅ丮³ª,
±× ·çÆ® µð·ºÅ丮¿¡ ¼ÓÇÏ´Â ÇÁ·Î¼¼½ºÀÇ µð·ºÅ丮 µî, ÀÓÀÇ·Î ÁöÁ¤ÇÒ ¼ö ÀÖ½À´Ï´Ù.
·¸ÞÀÏ ¹Ú½º¸¦ °Ë»öÇÏ´Â ÃøÀÇ ¾îÇø®ÄÉÀ̼ÇÀº ¸ÞÀÏ ¹Ú½º ¿ÀºêÁ§Æ®°¡ īŻ·Î±× µÇ¾î
ÀÖ´Â µð·ºÅ丮¿Í īŻ·Î±× À̸§À» ¾Ë¾Æ µÑ Çʿ䰡 ÀÖ½À´Ï´Ù.
|
CatalogRtHandle()
BOOL CatalogRtHandle(
RTHANDLE hProcess, // RTÇÁ·Î¼¼½ºÀÇ ÇÚµé
RTHANDLE hObject, // īŻ·Î±× ÇÏ´Â ¿ÀºêÁ§Æ®ÀÇ ÇÚµé
LPSTR lpszName // īŻ·Î±×¸í
);
LookupRtHandle()
RTHANDLE LookupRtHandle(
RTHANDLE hProcess, // RTÇÁ·Î¼¼½º ÇÚµé
LPSTR lpszName, // ¿ÀºêÁ§Æ®ÀÇ Ä«Å»·Î±×¸í
DWORD dwMilliseconds // °Ë»öÇϱâ À§ÇÑ Å¸ÀÓ ¾Æ¿ôÄ¡
);
WindowsÃø(NTX ¾îÇø®ÄÉÀ̼Ç)¿¡¼´Â ntxCatalogRtHandle()¿Í ntxLookupRtHandle()°¡ µË´Ï´Ù.
¾Æ³¯·Î±× µ¥ÀÌÅÍ º¯È¯Ä¡ Ãëµæ ½º·¿µå¸¦ Æ÷ÇÔÇÑ RTÇÁ·Î¼¼½º¿¡ Æ÷ÇԵǴ ¸ÞÀÏ ¹Ú½º¸¦ °Ë»öÇÑ´Ù.
|
| ¸ÞÀÏ ¹Ú½º ¿ÀºêÁ§Æ® ÇÚµéÀÇ Ãëµæ |
¡¡¸ÞÀÏ ¹Ú½º ¿ÀºêÁ§Æ® ÇÚµéÀ» ÃëµæÇϱâ À§ÇØ´Â ¿ì¼± ·çÆ® RtÇÁ·Î¼¼½º ÇÚµéÀÇ Ãëµæ
(ntxGetRootRtProcess)
¡é
RTÃøÀÇ ÇÁ·Î¼¼½º ¿ÀºêÁ§Æ®ÀÇ Ãëµæ(ntxLookupNtxHandle)
¡é
»ç¿ëÇÏ´Â ¸ÞÀÏ ¹Ú½º ¿ÀºêÁ§Æ® ÇÚµéÀÇ Ãëµæ(nyxLookupNtxHandle) |
| ÄÚµå»ó |
//·çÆ® ÇÁ·Î¼¼½º Çڵ鷯¸¦ ÃëµæÇÏ´Â if( (m_RootProcess = ntxGetRootRtProcess(NTX_LOCAL)) == NTX_BAD_NTXHANDLE ) {
AfxMessageBox( "·çÆ® ÇÁ·Î¼¼½º ÇÚµé Ãëµæ ¿¡·¯" ,MB_ICONERROR | MB_OKCANCEL,0);
exit(0); } //·çÆ® ÇÁ·Î¼¼½ºÇÏ¿¡ ÀÖ´Â INtimeÃøÀÇ ÇÁ·Î¼¼½º¸¦ °Ë»öÇØ Çڵ鷯¸¦ ÃëµæÇÑ´Ù
if ( (m_InTimeDocProcess = ntxLookupNtxhandle(m_RootProcess,rt_process, 0xffff))
== NTX_BAD_NTXHANDLE)
{
AfxMessageBox("INtimeDoc ÇÁ·Î¼¼½º ÇÚµé Ãëµæ ¿¡·¯" , MB_ICONERROR | MB_OKCANCEL,0);
exit(0);
}
//ÃëµæÇÑ INtimeÃøÀÇ Çڵ鷯¸¦ »ç¿ëÇØ µ¥ÀÌÅÍÀÇ ¼ö¼ö·Î »ç¿ëÇÏ´Â ¸ÞÀÏ ¹Ú½º¸¦ °Ë»ö
//ÇÚµéÀ» ÃëµæÇÑ´Ù.
If((m_RtGraphMailbox=ntxLookupNtxhandle(m_InTimeDocProcess,rt_nt_mbx, 0xffff))
== NTX_BAD_NTXHANDLE)
{
AfxMessageBox("¸ÞÀÏ ¹Ú½º ÇÚµé Ãëµæ ¿¡·¯" , MB_ICONERROR | MB_OKCANCEL,0);
exit(0);
} |
| Åë½Å ŸÀÌ¹Ö |
INtimeÃø¿¡¼ ¼Û½ÅµÈ ¸ÞÀÏ ¹Ú½º¸¦ ¼ö½ÅÇϴ ŸÀ̹ÖÀº »ùÇÿ¡ ÀÖ´ø ŸÀ̸Ó(OnTimer())¸¦ »ç¿ëÇϸé ÁÁÀº °ÍÀ̶ó°í
»ý°¢ÇØ, ŸÀ̸Ӹ¦ »ç¿ëÇØ ¼ö½ÅÇϴ ŸÀ̹ÖÀ» ÀÛ¼ºÇß½À´Ï´Ù.±×·¯³ª, À̰ÍÀ¸·Î´Â RTÃø°ú µ¿±â¸¦ ÃëÇÏÁö ¾Ê°í , NTÃøÀÇ µ¶ÀÚ Æú¸µ ÁÖ±â(ŸÀ̸Ó
ÁÖ±â)¿¡ ¸ÞÀÏ ¹Ú½º¸¦ °Ë»öÇϴ ó¸®°¡ µÇ¾î ¹ö¸®±â À§ÇØ ½º·¹µå¸¦ »ý¼ºÇØ ±× ½º·¹µåÀÇ ¼±µÎ¿¡¼ ¸ÞÀÏ ¹Ú½º¿¡ ¿ÀºêÁ§Æ®¸¦ ¼ö½ÅÇϴ ó¸®·Î
º¯°æÇß½À´Ï´Ù. ÀÌ ½º·¹µå ÀÛ¼º¿¡ °í»ýÇß½À´Ï´Ù. NTÃø¿¡¼ÀÇ ½º·¹µå¸¦ ¾î¶»°Ô ÀÛ¼ºÇϸé ÁÁÀº °ÍÀÎÁö ¸ô¶ú´ø ¶§¹®, VCÀÇ
ÇïÇÁ¿¡¼"½º·¹µå"·Î °Ë»öÇØ Á¶»çÇß½À´Ï´Ù. ³ª¿Â ÇÔ¼ö´Â, _beginthread ÇÔ¼ö°¡ ³ª¿Ô½À´Ï´Ù.
ÀÌ ÇÔ¼ö¸¦ »ç¿ëÇØ ÀÛ¼ºÇÏ´Â ÀÏ·Î
Çß½À´Ï´Ù. ÀÌ ÇÔ¼öÀÇ Á¦1 Àμö(»õ·Î¿î ½º·¹µåÀÇ ½ÇÇà °³½Ã ÁÖ¼Ò)ÀÇ ¼³Á¤ÀÌ ´É¼÷ÇÏ°Ô ÇÒ ¼ö ¾ø±â ¶§¹®¿¡ ü³ä CreateThread ÇÔ¼ö¸¦
»ç¿ëÇÏ´Â ÀÏ¿¡ ÀÌ ÇÔ¼ö¸¦ »ç¿ëÇØµµ °°Àº ¿¡·¯·Î ¾î¶»°Ôµµ ¾ÈµÇ¾ú½À´Ï´Ù. ´ÙÀ½¿¡ CWinThread Ŭ·¡½º¸¦ »ç¿ëÇØ
º¸¾Ò½À´Ï´Ù. CWinThred Ŭ·¡½ºÀÇ »ó¼Ó Ŭ·¡½º¸¦ ¿ì¼± ÀÛ¼ºÇß½À´Ï´Ù. »ç¿ë¹ý(ÇÔ¼öÀÇ »ç¿ë ¹æ¹ý)µî ¾î¶»°Ô ÇÏ¸é ¸ô¶ú´ø ¶§¹®, À̹øÀº
ÀÎÅͳÝÀ¸·Î Á¶»çÇØ º¸´Â ÀÏ·Î Çß½À´Ï´Ù. °Å±â¿¡ Á¶±Ý Âü°í¿¡ ÇÒ ¼ö ÀÖÀ» °Í °°Àº °£´ÜÇÑ °ÍÀ» ã¾Æ³Â½À´Ï´Ù.
ÀÛ¼ºÇÑ, ½º·¹µå¸¦ ±âµ¿Çϱâ
À§ÇØ´Â afxBeginThread ÇÔ¼ö¸¦ ÄÝ Çϸé ÁÁÀº °Í °°¾Ò½À´Ï´Ù. afxBeginThread ÇÔ¼ö°¡ ÄÝ µÇ´Â ÀÏ¿¡ ÀÇÇØ
CWinThread ¿ÀºêÁ§Æ®¸¦ ½Å±Ô¿¡ ÀÛ¼ºÇØ CreateThread¸¦ È£ÃâÇÏ°Ô µÇ¾î ÀÖ´Â °Í °°½À´Ï´Ù.
½ÇÁ¦, ±×·¡ÇÁÀÇ ¹¦È¸¦
ÇàÇϰí Àִ Ŭ·¡½º¿Í À̹ø ½º·¹µå³»¿¡¼ µ¥ÀÌÅ͸¦ ÃëµæÇÑ´Ù°í ¸»ÇÏ´Â ÀÏ·Î, ÃëµæÇÑ µ¥ÀÌÅÍÀÇ ±³È¯À» ¾î¶»°Ô ÇÏ´ÂÁö°¡ ¹®Á¦°¡
µÇ¾ú½À´Ï´Ù. ½º·¹µå³»¿¡ ´ÙÀ̾ó·Î±×ÃøÀÇ µ¥ÀÌÅ͸¦ °Ç³×ÁÖ´Â ¹æ¹ýÀÌ ÀüÇô ¸ð¸£´Â »óÅ¿´½À´Ï´Ù. Ŭ·¡½ºÀÇ ¸â¹ö º¯¼ö·Î¼ Ãë±ÞÇÏ´Â ÀÏ·Î
µ¥ÀÌÅÍÀÇ ±³È¯À» ½Ç½ÃÇϵµ·Ï ¼öÁ¤Çß½À´Ï´Ù¸¸, À̶ó°í ¸Þ¸ð¸® ÆÄ±«¸¦ ÀÏÀ¸Å°´Â »óȲÀ̾ú½À´Ï´Ù. À̰Ϳ¡´Â °ï¶õÇß½À´Ï´Ù.
ÀÌ ±³È¯À» ÇÒ ¼ö
¾øÀ¸¸é ±×·¡ÇÁÀÇ Ç¥½Ã¸¦ ÇÒ ¼ö ¾ø±â ¶§¹®¿¡ÀÔ´Ï´Ù. ÃÖÁ¾ÀûÀ¸·Î, ¿øÀÎÀ» ¾Ë ¼ö ÀÖ¾ú½À´Ï´Ù.
³»°¡, ½º·¹µåÅ©¶ó½ºÆ÷ÀΟ·Î¼ Ãë±ÞÇϰí ÀÖ´ø °ªÀÌ
¿ÏÀüÈ÷ ´Ù¸¥ °ÍÀ̾ú±â ¶§¹®¿¡ÀÔ´Ï´Ù. AfxbeginThread() ÄÝ·Î ÃëµæÇÑ °ªÀÌ, ½º·¹µåÅ©¶ó½ºÀÇ Æ÷ÀÎÅÍ·Î, ±× °ªÀ» »ç¿ëÇØ
½º·¹µåÅ©¶ó½ºÀÇ ¸â¹ö º¯¼öµî¿¡ ¾×¼¼½º ÇÏÁö ¾ÊÀ¸¸é ¾È µÇ´Â °ÍÀ», RUNTIME_CLASS(XXXX¡çŬ·¡½º¸í)·ÎÀÇ °ªÀ¸·Î ¾×¼¼½º ÇÏ·Á°í Çϰí
ÀÖ¾ú½À´Ï´Ù. À̰ÍÀ» °íÄ¡´Â °ÍÀ¸·Î, ½º·¹µåÅ©¶ó½ºÀÇ ¸â¹ö º¯¼ö µî¿¡ ¾×¼¼½º ÇÒ ¼ö ÀÖ°Ô µÇ¾î, ¼öÁß¿¡ ³ÖÀº µ¥ÀÌÅ͸¦ ´ÙÀ̾ó·Î±× ÇÔ¼ö·Î »ç¿ëÇÒ
¼ö ÀÖ¾î ±×·¡ÇÁÀÇ ¹¦È¸¦ ÇàÇÒ ¼ö ÀÖ°Ô
µÇ¾ú½À´Ï´Ù.
| | |
HOME |
INtime |