global.h
上传用户:hbzxgg2
上传日期:2009-03-28
资源大小:291k
文件大小:2k
源码类别:

Windows Mobile

开发平台:

Visual C++

  1. /* Filename : global.h */
  2. #pragma once
  3. #ifndef DLL_INTERNAL
  4. #ifdef WINCE
  5. #define DLL_INTERNAL
  6. #else
  7. #define DLL_INTERNAL __declspec( dllexport )
  8. #endif
  9. #endif
  10. #pragma warning(once:4996)      // 4996编译时的警告信息仅显示一个
  11. //==========================================================================
  12. // 常用操作宏
  13. //==========================================================================
  14. #define LENGTH(x) sizeof(x)/sizeof(x[0])
  15. #define MIN(x,y) (((DWORD)(x)<(DWORD)(y))?(x):(y))
  16. #define MAX(x,y) (((DWORD)(x)>(DWORD)(y))?(x):(y))
  17. #define ASSERT_ADDRESS(p,size) ASSERT((p)!=NULL && AfxIsValidAddress((p),(size),TRUE))
  18. #define GET_SAFE_STRING(str) ( (str)?(str):_T("") )
  19. #define GETFILESIZE(fad) (( (fad).nFileSizeHigh << sizeof(DWORD) ) | (fad).nFileSizeLow)
  20. // strlen_s 函数
  21. #ifdef UNICODE
  22. #define strlen_s wcslen
  23. #else
  24. #define strlen_s strlen
  25. #endif
  26. // strncpy 函数
  27. #ifdef UNICODE
  28. #define strncpy_s wcsncpy
  29. #else
  30. #define strncpy_s strncpy
  31. #endif
  32. // strncat 函数
  33. #ifdef UNICODE
  34. #define strncat_s wcsncat
  35. #else
  36. #define strncat_s strncat
  37. #endif
  38. // strrchr 函数
  39. #ifdef UNICODE
  40. #define strrchr_s wcsrchr
  41. #else
  42. #define strrchr_s strrchr
  43. #endif
  44. // strchr 函数
  45. #ifdef UNICODE
  46. #define strchr_s wcschr
  47. #else
  48. #define strchr_s strchr
  49. #endif
  50. // stricmp 函数
  51. #ifdef UNICODE
  52. #define stricmp_s _wcsicmp
  53. #else
  54. #define stricmp_s _stricmp
  55. #endif
  56. // sscanf 函数
  57. #ifdef UNICODE
  58. #define sscanf_s swscanf
  59. #else
  60. #define sscanf_s sscanf
  61. #endif
  62. // 句柄是否有效
  63. #define HANDLE_IS_VALID(h) ( (HANDLE)(h!=NULL) && (HANDLE)(h) != INVALID_HANDLE_VALUE )
  64. // 关闭句柄
  65. #define SAFE_CLOSE_HANDLE(h)
  66. {
  67. if ( HANDLE_IS_VALID ( h ) )
  68. {
  69. CloseHandle ( h );
  70. h = NULL;
  71. }
  72. }
  73. // 等待事件的 Sleep() 函数
  74. #define SLEEP_RETURN(x)
  75. {
  76. if ( ::WaitForSingleObject ( m_hEvtEndModule, x ) == WAIT_OBJECT_0 )
  77. return FALSE;
  78. }
  79. #define SLEEP_BREAK(x)
  80. {
  81. if ( ::WaitForSingleObject ( m_hEvtEndModule, x ) == WAIT_OBJECT_0 )
  82. break;
  83. }
  84. //
  85. // 全局消息
  86. //
  87. enum
  88. {
  89. WM_SCAN_BLUETOOTH_DEVICE_FINISHED = WM_USER+0x1000,
  90. };