±ÍÇÏ´Â ¼Õ´Ô À̽ʴϴÙ
·Î±×ÀÎ
ȸ¿ø°¡ÀÔ
  
  µ¨¸¶´ç °ø½Ä ÀºÇà°èÁÂ
  ÇϳªÀºÇà 227-910235-83607
  ¿¹±ÝÁÖ ÀÌ»ó±¹(¿î¿µÁø)
ÇÁ·ÎÁ§Æ® °Ô½ÃÆÇ
ÅõÇ¥°Ô½ÃÆÇ
µ¨¸¶´ç¼Ò°³
±âÃʺÎÅÍ È°¿ë±îÁö! µ¨ÆÄÀÌ ±³À° - µ¥ºê±â¾î
°­ÁÂ, ÆÁ, Á¤º¸ °­ÁÂ, ÆÁ, Á¤º¸ ÀÔ´Ï´Ù.
±Û³»¿ë - °­ÁÂ, ÆÁ, Á¤º¸
 ·Î±×¸¦ Âï¾î º¸ÀÚ. me too!
¾çº´±Ô
(¾çº´±Ô)
2008-07-16 ¿ÀÀü 11:11:48
Ä«Å×°í¸®: ÆÁ
14214ȸ Á¶È¸



µî·ÏµÈ ÆÄÀÏÀÌ ¾ø½À´Ï´Ù.
ÀÌ°æ¹®´Ô, Á¦¸ñ µµ¿ëÇؼ­ ÁË¼Û ^^;



¾ó¸¶Àü¿¡ ÀÚÀ¯°Ô½ÃÆÇ¿¡¼­ Á¦°¡ Áñ°Ü¾²´Â ·Î±×Âï´Â ¹ýÀ» ¼Ò°³Çß½À´Ï´Ù¸¸.. °áÁ¤ÀûÀ¸·Î Áß¿äÇÑ Çϳª¸¦ ºü¶ß·Á¼­.. ±× ºü¶ß¸° ÇÑ°¡Áö¸¦ ¼Ò°³ÇÕ´Ï´Ù. Á¦°¡ ÀÚÁÖ ¾²´Â°Ç ¾Æ´Ñµ¥.. ¾ÆÁÖ Àý½ÇÇÏ°Ô ÇÊ¿äÇÒ ¶§°¡ Á¾Á¾À־ ±×¶§¸¶´Ù »ç¿ëÇÕ´Ï´Ù.



Çϳª´Â Assert¸¦ ÀÌ¿ëÇÏ´Â ¹æ¹ýÀÌ°í ¶Ç Çϳª´Â OutputDebugStringÀ» ÀÌ¿ëÇÏ´Â ¹æ¹ý ±×¸®°í ÀÚ°Ô¿¡¼­ ºü¶ß¸®°í ¼³¸í ¸ø ÇÑ, ÀÌ µÑÀ» È¥¿ëÇÏ´Â ¹æ¹ýÀ» ¼Ò°³Çϵµ·Ï ÇÏ°Ú½À´Ï´Ù.



Assert



Assert´Â µ¨ÆÄÀÌ ÇÔ¼öÀä..  Assert( False, '¿©±â¿¡¼­ ¿¡·¯³µ´Ù'); ¿Í °°ÀÌ ÄÚµùÀ» Çϸé ÀÌ·¸°Ô ¸Þ¼¼Áö°¡ ¶å´Ï´Ù.







º¸½Ã´Ù½ÃÇÇ ¿¡·¯¾ÆÀÌÄÜ+³»°¡ ÁöÁ¤ÇÑ ¸Þ¼¼Áö+AssertÇÔ¼ö¸¦ È£ÃâÇÑ À¯´Ö¸í+¶óÀγѹö°¡ °°ÀÌ ¶å´Ï´Ù.



ù¹ø° ÆĶó¹ÌÅÍÀÎ ConditionÀº ¸»±×´ë·Î ÄÁµð¼ÇÀε¥... ÄÁµð¼ÇÀÌ TrueÀÌ¸é »óÅ°¡ ÁÁÀº°Å°í ÄÁµð¼ÇÀÌ ¾ÈÁÁÀ¸¸é »óÅ°¡ ¾ÈÁÁÀº°Ì´Ï´Ù. ±×·¡¼­ TrueÀ϶§´Â »óÅ°¡ ÁÁÀ¸¹Ç·Î ¿¡·¯°¡ ¾Æ´Ñ »óȲÀÌ°í FalseÀ϶§´Â »óÅ°¡ ¾ÈÁÁÀ¸´Ï±ñ ¿¡·¯ÀÎ »óȲÀÔ´Ï´Ù. Áï, ÄÁµð¼ÇÀÌ FalseÀ϶§¸¸ ¸Þ¼¼Áö°¡ Ãâ·ÂµÈ´Ù´Â ¾ê±â¿´½À´Ï´Ù. ¹°·Ð False¶ó°í Á÷Á¢ ½áµµ ÁÁÁö¸¸ BooleanÇü º¯¼ö¸¦ ÀÌ¿ëÇÏ´ø°¡ ¾Æ´Ï¸é Assert( i >= 0, '0 º¸´Ù ÀÛÀ¸¸é ¾ÈµÇ´Âµ¥..' );¿Í °°ÀÌ ÀÌ¿ëÇصµ ÁÁ½À´Ï´Ù.





OutputDebugString



OutputDebugStringÀº API ÇÔ¼öÀä. OutputDebugString( '¿©±â¿¡¼­ ¿¡·¯ ³µ´Ù' );¿Í °°ÀÌ ÄÚµùÇÏ°í ¹Ýµå½Ã Run(F9)¸¦ ÇÑ ´ÙÀ½ View->Debug Windows->Event Log¸¦ Ŭ¸¯Çؼ­(ȤÀº Ctrl+Alt+V) À̺¥Æ®·Î±× âÀ» ¶ç¿ö ³õÀ¸¸é OutputDebugString ÇÔ¼ö°¡ ½ÇÇàµÉ¶§ À̺¥Æ®·Î±× â¿¡ ´ÙÀ½°ú °°ÀÌ ¸Þ¼¼Áö°¡ ¶å´Ï´Ù.







¾Õ¿¡ ODS¶ó°í ½á´Â°ÍÀÌ OutputDebugStringÀ¸·Î ÂïÀº ¸Þ¼¼ÁöÀε¥¿ä ½ÇÁ¦·Î Çغ¸¸é ÀÌ ¿Ü¿¡µµ ÇÁ·Î¼¼½º°¡ ½ÇÇàµÉ¶§¶óµç°¡ ±âŸ ¿©·¯°¡Áö Á¤º¸°¡ °°ÀÌ ¿Ã¶ó¿À´Âµ¥, À̺¥Æ®·Î±× â¿¡¼­ ¿À¸¥Âʸ޴º¿¡¼­ Properties¸¦ Ŭ¸¯ÇÏ¸é ³ª¿À´Â ´ëÈ­»óÀÚ¿¡¼­ Messages ±×·ì¹Ú½º¿¡ Output messages¸¸ üũÇÏ°í ³ª¸ÓÁö´Â üũÇØÁ¦Çϸé OutputDebugString¸¸ ¶ß°ÔµË´Ï´Ù.(¹°·Ð ´Ù¸¥ ¸Þ¼¼Áöµéµµ È°¿ëÇϸé ÁÁ½À´Ï´Ù.)





Assert + OutputDebugString



¾Õ¿¡ µÎ °¡Áö´Â Àß ¾Æ´Â ³»¿ëÀ̾ú±¸¿ä À̹ø¿¡´Â ÀÌ µÎ °¡Áö¸¦ È¥¿ëÇÏ´Â ¹æ¹ýÀ» ¼Ò°³ÇÏ°Ú½À´Ï´Ù.

AssertÇÔ¼ö´Â ¾Õ¼­ ¼Ò°³ÇÑ ¸Þ¼¼ÁöâÀ» ¶ç¿ì´Â ¹æ¹ýÀÌ ÀϹÝÀûÀÌÁö¸¸ »ç¿ëÀÚ°¡ ¾î¶² ½ÄÀ¸·Î Ãâ·ÂÇÒÁö¸¦ ¼¼ÆÃÇÒ ¼ö ÀÖ°Ô µÇ¾î ÀÖ½À´Ï´Ù.



AssertErrorProcÀ» ÀÌ¿ëÇÏ¸é µÇ´Âµ¥¿ä... AssertErrorProcÀº SystemÀ¯´Ö¿¡ ¼±¾ðµÇ¾î ÀÖ´Â Àü¿ªº¯¼öÀÌ°í ÇÁ·Î½ÃÁ®Å¸ÀÔÀ¸·Î ¿øÇüÀº ´ÙÀ½°ú °°½À´Ï´Ù.









type

  TAssertErrorProc = procedure (const Message, Filename: string;

    LineNumber: Integer; ErrorAddr: Pointer);





ÀÌ·± Çü½ÄÀ¸·Î ÇÁ·Î½ÃÁ®¸¦ ¸¸µé¾î¼­ AssertErrorProc¿¡ ÇÒ´çÇØ ÁÖ¸é AssertÇÔ¼ö°¡ È£ÃâµÉ ¶§ ÀÌ ÇÁ·Î½ÃÁ®¸¦ È£ÃâÇØ ÁÝ´Ï´Ù. ÇÁ·Î½ÃÁ® ¾È¿¡¼­ OutputDebugStringÀ» ÀÌ¿ëÇϰԵǸé Assert¸¦ È£ÃâÇÒ ¶§¸¶´Ù À̺¥Æ®·Î±× â¿¡ ¸Þ¼¼Áö¿Í À¯´Ö¸í, ¶óÀγѹö°¡ ÇÔ²² ÂïÈ÷°Ô µË´Ï´Ù.



´ÙÀ½Àº ±× ¿¹Á¦À̱¸¿ä..








procedure AssertProc(const Message, Filename: String

                     LineNumber: Integer; ErrorAddr: Pointer);

begin

  OutputDebugString( PChar( ExtractFileName( Filename ) +

                            '(' + IntToStr( LineNumber ) + ' Line) ' +

                            Message ) );

end;


procedure TForm1.Button1Click(Sender: TObject);

var

  i: Integer;

begin

  i := -1;


  Assert( i >= 0, 'i´Â 0º¸´Ù ÀÛÀ¸¸é ¾ÈµÇ´Âµ¥..' );

end;


initialization

  AssertErrorProc := AssertProc;







Button1À» Ŭ¸¯Çϸé À̺¥Æ®·Î±×â¿¡ ´ÙÀ½°ú °°ÀÌ ÂïÈü´Ï´Ù.







À¯´Ö¸í°ú ¶óÀμö°¡ ÇÔ²² Ãâ·ÂÀÌ µÇ°í º°µµÀÇ if¹® ¾øÀ̵µ »óȲ¿¡ µû¶ó¼­ ¼±ÅÃÀûÀ¸·Î Ãâ·ÂÇÒ ¼ö À־ ÁÁ½À´Ï´Ù. ¶ÇÇÑ µð¹ö±ë½Ã¿¡¸¸ µ¿ÀÛÇÏ´Â OutputDebugStringÀ» ÀÌ¿ëÇÔÀ¸·Î½á ÀÌ »óÅ·Π¹èÆ÷Çصµ µÇ°í ¸Þ¼¼Áö¹Ú½º¸¦ ¶ç¿ì´Â °ÍÀÌ ¾Æ´Ï¹Ç·Î ¾²·¹µå³ª ¸Þ¼¼Áöµî°ú °°ÀÌ ½Ã°£À̳ª ÀýÂ÷¿¡ ¹Î°¨ÇÑ ¿¡·¯¸¦ ÀâÀ» ¶§ Æí¸®ÇÕ´Ï´Ù.



³¡.