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. #include "tstring.h"
  20. #include <strstream>
  21. #include <atlbase.h>       // USES_CONVERSION
  22. #pragma warning(default: 4201)
  23. /*
  24.  * namespace OnlineGameLib::Win32
  25.  */
  26. namespace OnlineGameLib {
  27. namespace Win32 {
  28. /*
  29.  * Debugging defines...
  30.  */
  31. #ifndef DEBUG_ONLY
  32. #ifdef _DEBUG
  33. #define DEBUG_ONLY(x)   x
  34. #else
  35. #define DEBUG_ONLY(x)
  36. #endif
  37. #endif
  38. /*
  39.  * Functions defined in this file...
  40.  */
  41. /*
  42.  * Converts a type to a _tstring.
  43.  * Convert a type to a string by streaming it. Requires that there's an ostream
  44.  * inserter available for type T.
  45.  *
  46.  * parameter num could be declared as a pointer to const
  47.  */
  48. template <class T>
  49. _tstring ToString( T num )
  50. {
  51. _tstring strNum = _T("");
  52.    {
  53.       std::strstream buf;
  54.    buf << num << std::ends;
  55. #ifdef _UNICODE
  56.       std::string temp = buf.str();
  57.       USES_CONVERSION;
  58.       strNum = A2W(temp.c_str());
  59. #else 
  60.    strNum = buf.str();
  61. #endif
  62.    buf.freeze(false);
  63.    }
  64.    return strNum;
  65. }
  66. template <class T>
  67. bool ToBool( const T &value )
  68. {
  69.    return ( 0 != value );
  70. }
  71. inline bool BOOL_to_bool(const BOOL bResult)
  72. {
  73.    /*
  74.     * Convert a make believe BOOL into a real bool.
  75.     * Removes warning C4800...
  76. */
  77.    return (TRUE == bResult);
  78. }
  79. _tstring HexToString( const BYTE *pBuffer, size_t iBytes );
  80. void StringToHex( const _tstring &str, BYTE *pBuffer, size_t nBytes );
  81. _tstring GetLastErrorMessage( DWORD last_error );
  82. _tstring GetCurrentDirectory();
  83. _tstring GetDateStamp();
  84. _tstring GetTimeStamp();
  85. void SetLogFileName( const _tstring &name );
  86. void Output( const _tstring &message );
  87. void OutPutInfo( const _tstring &message );
  88. void Trace2File( const _tstring &message );
  89. _tstring ToHex( BYTE c );
  90. _tstring DumpData( const BYTE * const pData, size_t dataLength, size_t lineLength = 0 );
  91. _tstring GetComputerName();
  92. _tstring GetModuleFileName( HINSTANCE hModule = 0 );
  93. _tstring GetUserName();
  94. _tstring GetFileVersion();
  95. _tstring StripLeading( const _tstring &source, const char toStrip );
  96. _tstring StripTrailing( const _tstring &source, const char toStrip );
  97. } // End of namespace OnlineGameLib
  98. } // End of namespace Win32
  99. #endif //__INCLUDE_UTILS_H__