星期六, 九月 02, 2006

002 - WINX概览:基础支撑

*) 基础支撑的实现原则
• 不假设自己是用户独立使用的库。
• 所以尽量检测用户是否使用了某种流行的库,选择该库已有的。
• 举例:WINX_ASSERT
  #if defined(ASSERT)
  #define WINX_ASSERT(e)ASSERT(e)
  #elif defined(_ASSERTE)
  #define WINX_ASSERT(e)_ASSERTE(e)
  #else
  #ifdef _DEBUG
  #define WINX_ASSERT(e)assert(e)
  #else
  #define WINX_ASSERT(e)0
  #endif
  #endif

*) 不完全列表
• 基础类,多数来自WTL
 –CPoint
 –CRect
 –CSize
 –CString
 –CFindFile
 –CRecentDocumentList
 –WindowRect
 –ClientRect
• 通用
 –_offsetof、parent_class_ptr、countof
 –MsgBox
 –WINX_DEFINE_IID、WINX_UUID
• 调试/诊断
 –WINX_ASSERT
 –WINX_ASSERT_OK
 –WINX_ASSERT_ONCE
 –WINX_ASSERT_DERIVE
 –WINX_REPORT
 –WINX_VERIFY
 –WINX_VERIFY_OK
 –WINX_TRACE

没有评论: