// 함수의 인자로 (LPCTSTR)가 넘어 왔을 경우 문자열 체크
void Function(LPCTSTR lpszStr)
{
  ASSERT( AfxIsValidString( lpszStr ) );
}

// 함수의 인자로 (char *) buffer가 넘어 왔을 경우 버퍼 체크
void Function(void *pBuff, int nLen)
{
  ASSERT( IsBadWritePtr(pBuff, nLen) == FALSE );
}

// ASSERT로 에러 내용 출력
_ASSERTE( !"Error - Function()" );



//--------- Assertion Helpter 함수 ----------//
// 메모리가 실행 될 수 있는지 확인
BOOL IsBadCodePtr(
          FARPROC lpfn         // memory address
          );

// 명시된 수의 바이트에 대해서 메모리 포인터를 읽을 수 있는지 확인
BOOL IsBadReadPtr(
          CONST VOID *lp,      // memory address
          UINT_PTR ucb         // size of block
          );

// 스트링 포인터가 명시된 최대 수나 스트링의 NULL까지 읽을 수 있는지 확인
BOOL IsBadStringPtr(
          LPCTSTR lpsz,         // string
          UINT_PTR ucchMax      // maximum size of string
          );

// 메모리 포인터가 명시된 바이트 수만큼 기록할 수 있는지 확인
BOOL IsBadWritePtr(
           LPVOID lp,           // memory address
           UINT_PTR ucb         // size of memory block
           );

// HWND 매개변수가 사용 가능한 윈도우인지 확인
BOOL IsWindow(HWND hwnd);
 
2006/05/14 00:31 2006/05/14 00:31

글 걸기 주소 : 이 글에는 트랙백을 보낼 수 없습니다

덧글을 달아 주세요