Misc.cpp
上传用户:tt_chan
上传日期:2009-12-03
资源大小:4523k
文件大小:3k
源码类别:

模拟服务器

开发平台:

Visual C++

  1. #include "stdafx.h"
  2. #include <stdio.h>
  3. void CenterDialog(HWND hParentWnd, HWND hWnd)
  4. {
  5. RECT rcMainWnd, rcDlg;
  6. GetWindowRect(hParentWnd, &rcMainWnd);
  7. GetWindowRect(hWnd, &rcDlg);
  8. MoveWindow(hWnd, rcMainWnd.left + (((rcMainWnd.right - rcMainWnd.left) - (rcDlg.right - rcDlg.left)) / 2), 
  9. rcMainWnd.top + (((rcMainWnd.bottom - rcMainWnd.top) - (rcDlg.bottom - rcDlg.top)) / 2), 
  10. (rcDlg.right - rcDlg.left), (rcDlg.bottom - rcDlg.top), FALSE);
  11. }
  12. __int64 FileTimeToQuadWord(PFILETIME pFileTime)
  13. {  
  14. __int64 qw;
  15. qw = pFileTime->dwHighDateTime;
  16. qw <<= 32;
  17. qw |= pFileTime->dwLowDateTime;
  18. return qw;
  19. }
  20. void QuadTimeToFileTime(__int64 qw, PFILETIME pFileTime)
  21. {
  22. pFileTime->dwHighDateTime = (DWORD)(qw >> 32);
  23. pFileTime->dwLowDateTime = (DWORD)(qw & 0xFFFFFFFF);
  24. }
  25. int memlen(const char *str)
  26. {
  27.     const char *eos = str;
  28.     while(*eos++);
  29.     return((int)(eos - str));
  30. }
  31. int AnsiStrToVal(const char *nptr)
  32. {
  33.     int c = (int)(unsigned char)*nptr++;
  34.     int total = 0;
  35.     while (c >= '0' && c <= '9') 
  36. {
  37.         total = 10 * total + (c - '0');     /* accumulate digit */
  38.         c = (int)(unsigned char)*nptr++;    /* get next char */
  39.     }
  40. return total;
  41. }
  42. char *ValToAnsiStr(unsigned long val, char *buf)
  43. {
  44.     char *p;                /* pointer to traverse string */
  45.     char *firstdig;         /* pointer to first digit */
  46.     char temp;              /* temp char */
  47. char *next;
  48.     unsigned digval;        /* value of digit */
  49.     p = buf;
  50.     firstdig = p;           /* save pointer to first digit */
  51.     do {
  52.         digval = (unsigned) (val % 10);
  53.         val /= 10;        /* get next digit */
  54.         /* convert to ascii and store */
  55.         if (digval > 9)
  56.             *p++ = (char) (digval - 10 + 'a');  /* a letter */
  57.         else
  58.             *p++ = (char) (digval + '0');       /* a digit */
  59.     } while (val > 0);
  60.     /* We now have the digit of the number in the buffer, but in reverse
  61.        order.  Thus we reverse them now. */
  62. next = p;
  63.     *p-- = '';            /* terminate string; p points to last digit */
  64.     do {
  65.         temp = *p;
  66.         *p = *firstdig;
  67.         *firstdig = temp;   /* swap *p and *firstdig */
  68.         --p;
  69.         ++firstdig;         /* advance to next two digits */
  70.     } while (firstdig < p); /* repeat until halfway */
  71. return next;
  72. }
  73. void ChangeSpaceToNull(char *pszData)
  74. {
  75. char *pszCheck = pszData;
  76. while (*pszCheck)
  77. {
  78. if (*pszCheck == 0x20)
  79. {
  80. *pszCheck = '';
  81. break;
  82. }
  83. pszCheck++;
  84. }
  85. }
  86. void GetDate(char *pszBuf)
  87. {
  88. time_t t;
  89. struct tm ttm;
  90. time(&t);
  91. memcpy(&ttm, localtime(&t), sizeof(struct tm));
  92. sprintf(pszBuf, "%02d%02d%02d", ttm.tm_year - 100, ttm.tm_mon + 1, ttm.tm_mday);
  93. }
  94. int GetTime()
  95. {
  96. time_t t;
  97. struct tm ttm;
  98. time(&t);
  99. memcpy(&ttm, localtime(&t), sizeof(struct tm));
  100. // wsprintf(pszBuf, _TEXT("%02d%02d%02d"), ttm.tm_year - 100, ttm.tm_mon + 1, ttm.tm_mday);
  101. return ttm.tm_hour;
  102. }