诸暨麻将添加redis
Du kannst nicht mehr als 25 Themen auswählen Themen müssen entweder mit einem Buchstaben oder einer Ziffer beginnen. Sie können Bindestriche („-“) enthalten und bis zu 35 Zeichen lang sein.
 
 
 
 
 
 

152 Zeilen
3.8 KiB

  1. #ifndef MACRO_HEAD_FILE
  2. #define MACRO_HEAD_FILE
  3. //////////////////////////////////////////////////////////////////////////////////
  4. //常用常量
  5. //无效数值
  6. #define INVALID_BYTE ((BYTE)(0xFF)) //无效数值
  7. #define INVALID_WORD ((WORD)(0xFFFF)) //无效数值
  8. #define INVALID_DWORD ((DWORD)(0xFFFFFFFF)) //无效数值
  9. //////////////////////////////////////////////////////////////////////////////////
  10. //数组维数
  11. #define CountArray(Array) (sizeof(Array)/sizeof(Array[0]))
  12. //无效地址
  13. #define INVALID_IP_ADDRESS(IPAddress) (((IPAddress==0L)||(IPAddress==INADDR_NONE)))
  14. //////////////////////////////////////////////////////////////////////////////////
  15. //存储长度
  16. #ifdef _UNICODE
  17. #define CountStringBuffer CountStringBufferW
  18. #else
  19. #define CountStringBuffer CountStringBufferA
  20. #endif
  21. //存储长度
  22. #define CountStringBufferA(String) ((UINT)((lstrlenA(String)+1)*sizeof(CHAR)))
  23. #define CountStringBufferW(String) ((UINT)((lstrlenW(String)+1)*sizeof(WCHAR)))
  24. //////////////////////////////////////////////////////////////////////////////////
  25. //接口释放
  26. #define SafeRelease(pObject) { if (pObject!=NULL) { pObject->Release(); pObject=NULL; } }
  27. //删除指针
  28. #define SafeDelete(pData) { try { delete pData; } catch (...) { ASSERT(FALSE); } pData=NULL; }
  29. //关闭句柄
  30. #define SafeCloseHandle(hHandle) { if (hHandle!=NULL) { CloseHandle(hHandle); hHandle=NULL; } }
  31. //删除数组
  32. #define SafeDeleteArray(pData) { try { delete [] pData; } catch (...) { ASSERT(FALSE); } pData=NULL; }
  33. //////////////////////////////////////////////////////////////////////////////////
  34. //转换字符
  35. inline VOID SwitchScoreFormat(LONGLONG lScore, UINT uSpace,LPCTSTR pszFormat,LPTSTR pszBuffer, WORD wBufferSize)
  36. {
  37. //转换数值
  38. TCHAR szSwitchScore[16]=TEXT("");
  39. _sntprintf_s(szSwitchScore,CountArray(szSwitchScore),pszFormat,lScore);
  40. if(uSpace>0)
  41. {
  42. //变量定义
  43. WORD wTargetIndex=0;
  44. WORD wSourceIndex=0;
  45. WORD wSourceStringLen=0;
  46. //计算长度
  47. while (szSwitchScore[wSourceStringLen]!=0 && szSwitchScore[wSourceStringLen]!='.')
  48. {
  49. ++wSourceStringLen;
  50. }
  51. //转换字符
  52. for (INT i=0;i<wSourceStringLen;i++)
  53. {
  54. //拷贝字符
  55. pszBuffer[wTargetIndex++]=szSwitchScore[wSourceIndex++];
  56. //插入逗号
  57. if ((wSourceStringLen-wSourceIndex>0) && ((wSourceStringLen-wSourceIndex)%uSpace==0))
  58. {
  59. pszBuffer[wTargetIndex++]=TEXT(',');
  60. }
  61. }
  62. //补充小数
  63. while (szSwitchScore[wSourceIndex]!=0)
  64. {
  65. pszBuffer[wTargetIndex++] = szSwitchScore[wSourceIndex++];
  66. }
  67. //结束字符
  68. pszBuffer[wTargetIndex++]=0;
  69. }
  70. else
  71. {
  72. CopyMemory(pszBuffer,szSwitchScore,wBufferSize);
  73. }
  74. return;
  75. }
  76. //转换字符
  77. inline VOID SwitchScoreFormat(double lScore, UINT uSpace,LPCTSTR pszFormat,LPTSTR pszBuffer, WORD wBufferSize)
  78. {
  79. //转换数值
  80. TCHAR szSwitchScore[16]=TEXT("");
  81. _sntprintf_s(szSwitchScore,CountArray(szSwitchScore),pszFormat,lScore);
  82. if(uSpace>0)
  83. {
  84. //变量定义
  85. WORD wTargetIndex=0;
  86. WORD wSourceIndex=0;
  87. WORD wSourceStringLen=0;
  88. //计算长度
  89. while (szSwitchScore[wSourceStringLen]!=0 && szSwitchScore[wSourceStringLen]!='.')
  90. {
  91. ++wSourceStringLen;
  92. }
  93. //转换字符
  94. for (INT i=0;i<wSourceStringLen;i++)
  95. {
  96. //拷贝字符
  97. pszBuffer[wTargetIndex++]=szSwitchScore[wSourceIndex++];
  98. //插入逗号
  99. if ((wSourceStringLen-wSourceIndex>0) && ((wSourceStringLen-wSourceIndex)%uSpace==0))
  100. {
  101. pszBuffer[wTargetIndex++]=TEXT(',');
  102. }
  103. }
  104. //补充小数
  105. while (szSwitchScore[wSourceIndex]!=0)
  106. {
  107. pszBuffer[wTargetIndex++] = szSwitchScore[wSourceIndex++];
  108. }
  109. //结束字符
  110. pszBuffer[wTargetIndex++]=0;
  111. }
  112. else
  113. {
  114. CopyMemory(pszBuffer,szSwitchScore,wBufferSize);
  115. }
  116. return;
  117. }
  118. //////////////////////////////////////////////////////////////////////////////////
  119. #endif