Utils.h
上传用户:dzyhzl
上传日期:2019-04-29
资源大小:56270k
文件大小:3k
源码类别:

模拟服务器

开发平台:

C/C++

  1. /********************************************************************
  2. created: 2003/02/13
  3. file base: Utils
  4. file ext: h
  5. author: liupeng
  6. purpose: Header file for common routines
  7. *********************************************************************/
  8. #ifndef __INCLUDE_UTILS_H__
  9. #define __INCLUDE_UTILS_H__
  10. #if defined (_MSC_VER) && (_MSC_VER >= 1020)
  11. #pragma once
  12. #endif
  13. #pragma warning(disable: 4201)   // nameless struct/union
  14. #ifndef _WINDOWS_
  15. #define WIN32_LEAN_AND_MEAN
  16. #include <windows.h>
  17. #undef WIN32_LEAN_AND_MEAN
  18. #endif
  19. #if( _WIN32_WINNT >= 0x0400 )
  20. #include <winsock2.h>
  21. #include <mswsock.h>
  22. #else
  23. #include <winsock.h>
  24. #endif /* _WIN32_WINNT >=  0x0400 */
  25. #pragma comment( lib, "ws2_32" )
  26. #include "tstring.h"
  27. #include <strstream>
  28. #include <atlbase.h>       // USES_CONVERSION
  29. #pragma warning(default: 4201)
  30. /*
  31.  * namespace OnlineGameLib::Win32
  32.  */
  33. namespace OnlineGameLib {
  34. namespace Win32 {
  35. /*
  36.  * Debugging defines...
  37.  */
  38. #ifndef DEBUG_ONLY
  39. #ifdef _DEBUG
  40. #define DEBUG_ONLY( x )   x
  41. #else
  42. #define DEBUG_ONLY( x )
  43. #endif
  44. #endif
  45. /*
  46.  *Functions defined in this file...
  47.  */
  48. /*
  49.  * Converts a type to a _tstring.
  50.  * Convert a type to a string by streaming it. Requires that there's an ostream
  51.  * inserter available for type T.
  52.  */
  53. template <class T>
  54. _tstring ToString( T num )
  55. {
  56. _tstring strNum = _T("");
  57. {
  58. std::strstream buf;
  59. buf << num << std::ends;
  60. #ifdef _UNICODE
  61. std::string temp = buf.str();
  62. USES_CONVERSION;
  63. strNum = A2W(temp.c_str());
  64. #else 
  65. strNum = buf.str();
  66. #endif
  67. buf.freeze( false );
  68.    }
  69. return strNum;
  70. }
  71. template <class T>
  72. bool ToBool( const T &value )
  73. {
  74. return ( 0 != value );
  75. }
  76. inline bool BOOL_to_bool( const BOOL bResult )
  77. {
  78.    /*
  79.     * Convert a make believe BOOL into a real bool.
  80. * Removes warning C4800
  81.     */
  82. return ( TRUE == bResult );
  83. }
  84. _tstring HexToString( const BYTE *pBuffer, size_t iBytes );
  85. void StringToHex( const _tstring &str, BYTE *pBuffer, size_t nBytes );
  86. DWORD HexStringToDWORD( LPCTSTR lpString );
  87. DWORD HashStr2ID( const char * const pStr );
  88. unsigned long net_aton( const char *pAddr );
  89. const char *net_ntoa( unsigned long lnAddr );
  90. _tstring GetLastErrorMessage( DWORD last_error );
  91. _tstring GetCurrentDirectory();
  92. _tstring GetAppFullPath( HINSTANCE hInst );
  93. _tstring GetDateStamp();
  94. _tstring GetTimeStamp();
  95. void SetLogFileName( const _tstring &name );
  96. void Message( const char * const pInfo );
  97. void Output( const _tstring &message );
  98. void Trace( const _tstring &progID, const _tstring &message );
  99. _tstring ToHex(BYTE c);
  100. _tstring DumpData(
  101. const BYTE * const pData, 
  102. size_t dataLength, 
  103. size_t lineLength = 0 );
  104. _tstring GetComputerName();
  105. _tstring GetModuleFileName( HINSTANCE hModule = 0 );
  106. _tstring GetUserName();
  107. _tstring GetFileVersion();
  108. bool GetLocalName( LPTSTR strName, UINT nSize );
  109. bool GetLocalAddress( LPTSTR strAddress, UINT nSize, int nAdapter = 0 );
  110. _tstring StripLeading( const _tstring &source, const char toStrip );
  111. _tstring StripTrailing( const _tstring &source, const char toStrip );
  112. } // End of namespace OnlineGameLib
  113. } // End of namespace Win32
  114. #endif //__INCLUDE_UTILS_H__