tnerror.cpp
上传用户:kunlunxyl
上传日期:2007-01-07
资源大小:45k
文件大小:3k
源码类别:

Telnet客户端

开发平台:

Visual C++

  1. ///////////////////////////////////////////////////////////////////////////////
  2. //
  3. // Module: telnet.cpp
  4. //
  5. // Contents: error reporting
  6. //
  7. // Product: telnet
  8. //
  9. // Revisions: 02.Apr.1995 igor.milavec@uni-lj.si
  10. // Original code
  11. //
  12. ///////////////////////////////////////////////////////////////////////////////
  13. #include "tnerror.h"
  14. #include <time.h>
  15. #include <stdio.h>
  16. #include <stdarg.h>
  17. int printm(LPTSTR szModule, BOOL fSystem, DWORD dwMessageId, ...)
  18. {
  19. int Result = 0;
  20. HMODULE hModule = 0;
  21. if (szModule)
  22. hModule = LoadLibrary(szModule);
  23. va_list Ellipsis;
  24. va_start(Ellipsis, dwMessageId);
  25. LPTSTR pszMessage = 0;
  26. DWORD dwMessage = FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER |
  27. (fSystem? FORMAT_MESSAGE_FROM_SYSTEM: FORMAT_MESSAGE_FROM_HMODULE),
  28. hModule, dwMessageId, LANG_USER_DEFAULT,
  29. (LPTSTR)&pszMessage, 128, &Ellipsis);
  30. va_end(Ellipsis);
  31. if (szModule)
  32. FreeLibrary(hModule);
  33. if (dwMessage) {
  34. Result = printf(pszMessage);
  35. LocalFree(pszMessage);
  36. }
  37. return Result;
  38. }
  39. void LogErrorConsole(LPTSTR szError)
  40. {
  41. DWORD dwLastError = GetLastError();
  42. const int cbLastError = 1024;
  43. TCHAR szLastError[cbLastError];
  44. FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM, 0, dwLastError, LANG_USER_DEFAULT,
  45. szLastError, cbLastError, 0);
  46. LPTSTR lpszStrings[2];
  47. lpszStrings[0] = szError;
  48. lpszStrings[1] = szLastError;
  49. const int cbErrorString = 1024;
  50. TCHAR szErrorString[cbErrorString];
  51. FormatMessage(FORMAT_MESSAGE_FROM_HMODULE| FORMAT_MESSAGE_ARGUMENT_ARRAY,
  52. 0, MSG_ERROR, LANG_USER_DEFAULT,
  53. szErrorString, cbErrorString, (PVOID*)lpszStrings);
  54. time_t dwTime;
  55. time(&dwTime);
  56. char* szTime = ctime(&dwTime);
  57. szTime[19] = 0;
  58. printf("E %s %s", szTime + 11, szErrorString);
  59. }
  60. void LogWarningConsole(DWORD dwEvent, LPTSTR szWarning)
  61. {
  62. DWORD dwLastError = GetLastError();
  63. const int cbLastError = 1024;
  64. TCHAR szLastError[cbLastError];
  65. FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM, 0, dwLastError, LANG_USER_DEFAULT,
  66. szLastError, cbLastError, 0);
  67. LPTSTR lpszStrings[2];
  68. lpszStrings[0] = szWarning;
  69. lpszStrings[1] = szLastError;
  70. const int cbWarningString = 1024;
  71. TCHAR szWarningString[cbWarningString];
  72. FormatMessage(FORMAT_MESSAGE_FROM_HMODULE| FORMAT_MESSAGE_ARGUMENT_ARRAY,
  73. 0, dwEvent, LANG_USER_DEFAULT,
  74. szWarningString, cbWarningString, (PVOID*)lpszStrings);
  75. time_t dwTime;
  76. time(&dwTime);
  77. char* szTime = ctime(&dwTime);
  78. szTime[19] = 0;
  79. printf("W %s %s", szTime + 11, szWarningString);
  80. }
  81. void LogInfoConsole(DWORD dwEvent, LPTSTR szInformation)
  82. {
  83. LPTSTR lpszStrings[1];
  84. lpszStrings[0] = szInformation;
  85. const int cbInfoString = 1024;
  86. TCHAR szInfoString[cbInfoString];
  87. FormatMessage(FORMAT_MESSAGE_FROM_HMODULE| FORMAT_MESSAGE_ARGUMENT_ARRAY,
  88. 0, dwEvent, LANG_USER_DEFAULT,
  89. szInfoString, cbInfoString, (PVOID*)lpszStrings);
  90. time_t dwTime;
  91. time(&dwTime);
  92. char* szTime = ctime(&dwTime);
  93. szTime[19] = 0;
  94. printf("I %s %s", szTime + 11, szInfoString);
  95. }