win32调试宏
来源:互联网 发布:上瘾网络剧1 20bilibi 编辑:程序博客网 时间:2024/05/31 20:52
#ifndef MTVERITY_H_#define MTVERITY_H_#pragma comment(lib, "user32")#include <Windows.h>#define MTASSERT(a) _ASSERTE(a)#define MTVERITY(a) if(!(a))\PrintError(#a,__FILE__,__LINE__,GetLastError()) static void PrintError(LPSTR linedesc, LPSTR filename, int lineno, DWORD errnum){LPSTR lpBuffer;char errbuf[256];#ifndef _CONSOLEchar modulename[MAX_PATH];#elseDWORD numread;#endif //_WINDOWS_FormatMessage( FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM, NULL, errnum, LANG_NEUTRAL, (LPTSTR)&lpBuffer, 0, NULL );sprintf(errbuf, "\nThe following call failed at line %d in %s:\n\n %s\n\nReason: %s\n", lineno, filename, linedesc, lpBuffer);#ifdef _CONSOLEWriteFile(GetStdHandle(STD_ERROR_HANDLE), errbuf, strlen(errbuf), &numread, FALSE ); Sleep(5000); #else GetModuleFileNameA(NULL, modulename, MAX_PATH); MessageBoxA(NULL, errbuf, modulename, MB_ICONWARNING|MB_OK|MB_TASKMODAL|MB_SETFOREGROUND); #endifexit(EXIT_FAILURE);}#endif
下面是使用技巧:
// win32Thread.cpp : 定义控制台应用程序的入口点。//#include <stdio.h>#include <Windows.h>#include <tchar.h>#include "mtverify.h"DWORD WINAPI ThreadProc(void* pmsg){DWORD n = (DWORD)pmsg;Sleep(n*5000);return n * 10;}DWORD WINAPI ThreadProc1(void* pmsg){ExitThread(100);return 0;}int _tmain(int argc, _TCHAR* argv[]){HANDLE hThread1, hThread2;DWORD dThreadID1,DThreadId2;DWORD dExitCode1,dExitCode2;hThread1 = CreateThread(NULL,0,ThreadProc,LPVOID(1), 0, &dThreadID1);hThread2 = CreateThread(NULL,0,ThreadProc1,LPVOID(2), 0, &DThreadId2);CloseHandle(hThread1);CloseHandle(hThread2);while(1){printf("please Enter:");getchar();MTVERITY( GetExitCodeThread(hThread1, &dExitCode1));MTVERITY( GetExitCodeThread(hThread2, &dExitCode2));if (dExitCode1 == STILL_ACTIVE){printf("Thread 1 running\n");}if (dExitCode2 == STILL_ACTIVE){printf("Thread2 running\n");}if (dExitCode1 !=STILL_ACTIVE && dExitCode2 != STILL_ACTIVE){printf("Thread Two End\n");break;}}printf("%d,%d\n",dExitCode1, dExitCode2);system("pause");return 0;}
- win32调试宏
- Win32调试API原理
- Win32调试API(1)
- Win32调试API(2)
- Win32调试API(3)
- 调试Win32 Service
- Win32调试API教程
- Win32调试API教程
- Win32调试API原理
- win32调试API学习心得
- DLL 查看 Win32调试
- Win32调试API原理
- Win32调试API原理
- Win32调试API原理
- win32调试API学习心得
- win32调试api
- Win32调试API原理
- win32串口调试助手
- .Net常用事务(了解一下)
- 七 Strings类(二)
- 行测
- 技术社区的需求
- 七 Strings类(三)
- win32调试宏
- Hibernate事件系统及监听器
- Ext.NET控件介绍—Form控件
- [latex]PGF and Tikz 设置填充透明效果(Transparency)
- 八 Stream classes(一)
- 八 Stream classes(二)
- 八 Stream classes(三)
- 北京联合大学csdn俱乐部极客公园创新大会
- 教你不换主板升级USB3.0