CDebug.cpp
上传用户:woomicn
上传日期:2017-11-10
资源大小:42k
文件大小:5k
源码类别:

多显示器编程

开发平台:

Visual C++

  1. //////////////////////////////////////////////////////////
  2. // Program   : CDebug class implementation file
  3. // Author    : Daniel Chirca
  4. // Email     : D.Chirca@finsiel.ro
  5. //////////////////////////////////////////////////////////
  6. #include "StdAfx.h"
  7. #ifndef CDEBUG
  8. #include "CDebug.h"
  9. #endif
  10. #ifdef _DEBUG
  11. #define new DEBUG_NEW
  12. #undef THIS_FILE
  13. static char THIS_FILE[] = __FILE__;
  14. #endif
  15. CDebug::CDebug()
  16. {  
  17. strcpy(szBuffer,"");
  18. cpData.dwData = 0;
  19. cpData.cbData = 1;
  20. cpData.lpData = "";
  21. hWnd = NULL;
  22. CDebug::~CDebug()
  23. }
  24. BOOL CDebug::GetDebugWindowHandle()
  25. {
  26. //find the Debug window
  27. hWnd = ::FindWindow(NULL, "Debug messages");
  28. if(!hWnd)
  29. return FALSE;
  30. else
  31. return TRUE;
  32. }
  33. BOOL CDebug::SendData()
  34. {
  35. //set up a COPYDATASTRUCT structure for use with WM_COPYDATA
  36. cpData.dwData = (DWORD) nLevel;
  37. cpData.cbData = strlen(szBuffer) + 1;
  38. cpData.lpData = szBuffer;
  39. //send the structure to Debug via the system
  40. LRESULT lResult = ::SendMessage(hWnd, WM_COPYDATA, (UINT) NULL, (long) &cpData);
  41. if((BOOL) lResult == TRUE)
  42. {
  43. return TRUE;
  44. }
  45. else
  46. {
  47. return FALSE;
  48. }
  49. }
  50. BOOL CDebug::Printf0(CString szFormat, ...)
  51. {
  52. if(GetDebugWindowHandle() == FALSE) return FALSE;
  53. va_list valist;
  54. char szTmp[_MAX_PATH];
  55. strcpy(szTmp, szFormat.GetBuffer(szFormat.GetLength()));
  56. va_start(valist, szTmp);
  57. int nResult = wvsprintf(szBuffer,
  58. szFormat.GetBuffer(szFormat.GetLength() + 1),
  59. valist);
  60. va_end(valist);
  61. szFormat.ReleaseBuffer();
  62. nLevel = 0;
  63. return SendData();
  64. }
  65. BOOL CDebug::Printf0(LPTSTR szFormat, ...)
  66. {
  67. if(GetDebugWindowHandle() == FALSE) return FALSE;
  68. va_list valist;
  69. va_start(valist, szFormat);
  70. int nResult = wvsprintf(szBuffer,
  71. szFormat,
  72. valist);
  73. va_end(valist);
  74. nLevel = 0;
  75. return SendData();
  76. }
  77. BOOL CDebug::Printf0(LPCTSTR szFormat, ...)
  78. {
  79. if(GetDebugWindowHandle() == FALSE) return FALSE;
  80. va_list valist;
  81. va_start(valist, szFormat);
  82. int nResult = wvsprintf(szBuffer,
  83. szFormat,
  84. valist);
  85. va_end(valist);
  86. nLevel = 0;
  87. return SendData();
  88. }
  89. BOOL CDebug::Printf1(CString szFormat, ...)
  90. {
  91. if(GetDebugWindowHandle() == FALSE) return FALSE;
  92. va_list valist;
  93. char szTmp[_MAX_PATH];
  94. strcpy(szTmp, szFormat.GetBuffer(szFormat.GetLength()));
  95. va_start(valist, szTmp);
  96. int nResult = wvsprintf(szBuffer,
  97. szFormat.GetBuffer(szFormat.GetLength() + 1),
  98. valist);
  99. va_end(valist);
  100. szFormat.ReleaseBuffer();
  101. nLevel = 1;
  102. return SendData();
  103. }
  104. BOOL CDebug::Printf1(LPTSTR szFormat, ...)
  105. {
  106. if(GetDebugWindowHandle() == FALSE) return FALSE;
  107. va_list valist;
  108. va_start(valist, szFormat);
  109. int nResult = wvsprintf(szBuffer,
  110. szFormat,
  111. valist);
  112. va_end(valist);
  113. nLevel = 1;
  114. return SendData();
  115. }
  116. BOOL CDebug::Printf1(LPCTSTR szFormat, ...)
  117. {
  118. if(GetDebugWindowHandle() == FALSE) return FALSE;
  119. va_list valist;
  120. va_start(valist, szFormat);
  121. int nResult = wvsprintf(szBuffer,
  122. szFormat,
  123. valist);
  124. va_end(valist);
  125. nLevel = 1;
  126. return SendData();
  127. }
  128. BOOL CDebug::Printf2(CString szFormat, ...)
  129. {
  130. if(GetDebugWindowHandle() == FALSE) return FALSE;
  131. va_list valist;
  132. char szTmp[_MAX_PATH];
  133. strcpy(szTmp, szFormat.GetBuffer(szFormat.GetLength()));
  134. va_start(valist, szTmp);
  135. int nResult = wvsprintf(szBuffer,
  136. szFormat.GetBuffer(szFormat.GetLength() + 1),
  137. valist);
  138. va_end(valist);
  139. szFormat.ReleaseBuffer();
  140. nLevel = 2;
  141. return SendData();
  142. }
  143. BOOL CDebug::Printf2(LPTSTR szFormat, ...)
  144. {
  145. if(GetDebugWindowHandle() == FALSE) return FALSE;
  146. va_list valist;
  147. va_start(valist, szFormat);
  148. int nResult = wvsprintf(szBuffer,
  149. szFormat,
  150. valist);
  151. va_end(valist);
  152. nLevel = 2;
  153. return SendData();
  154. }
  155. BOOL CDebug::Printf2(LPCTSTR szFormat, ...)
  156. {
  157. if(GetDebugWindowHandle() == FALSE) return FALSE;
  158. va_list valist;
  159. va_start(valist, szFormat);
  160. int nResult = wvsprintf(szBuffer,
  161. szFormat,
  162. valist);
  163. va_end(valist);
  164. nLevel = 2;
  165. return SendData();
  166. }
  167. BOOL CDebug::Printf3(CString szFormat, ...)
  168. {
  169. if(GetDebugWindowHandle() == FALSE) return FALSE;
  170. va_list valist;
  171. char szTmp[_MAX_PATH];
  172. strcpy(szTmp, szFormat.GetBuffer(szFormat.GetLength()));
  173. va_start(valist, szTmp);
  174. int nResult = wvsprintf(szBuffer,
  175. szFormat.GetBuffer(szFormat.GetLength() + 1),
  176. valist);
  177. va_end(valist);
  178. szFormat.ReleaseBuffer();
  179. nLevel = 3;
  180. return SendData();
  181. }
  182. BOOL CDebug::Printf3(LPTSTR szFormat, ...)
  183. {
  184. if(GetDebugWindowHandle() == FALSE) return FALSE;
  185. va_list valist;
  186. va_start(valist, szFormat);
  187. int nResult = wvsprintf(szBuffer,
  188. szFormat,
  189. valist);
  190. va_end(valist);
  191. nLevel = 3;
  192. return SendData();
  193. }
  194. BOOL CDebug::Printf3(LPCTSTR szFormat, ...)
  195. {
  196. if(GetDebugWindowHandle() == FALSE) return FALSE;
  197. va_list valist;
  198. va_start(valist, szFormat);
  199. int nResult = wvsprintf(szBuffer,
  200. szFormat,
  201. valist);
  202. va_end(valist);
  203. nLevel = 3;
  204. return SendData();
  205. }