一个多线程的宏 mtverify.h
请问这个文件mtverify.h这个文件在哪?我搜索了include的文件夹还是没有.
自己按书上定义了一个,又问题百出,在这里把代码写出来,请大侠指导.
小虾,想请问一个问题,这个文件都是自己定义的吗?搜了什么也没搜到.相关信息提到这个是c runtime library
我用的环境是VC 6.0
自己按书上定义了一个,又问题百出,在这里把代码写出来,请大侠指导.
小虾,想请问一个问题,这个文件都是自己定义的吗?搜了什么也没搜到.相关信息提到这个是c runtime library
我用的环境是VC 6.0
#pragma comment(lib,"USER32")
#include <crtdbg.h>
#define MTASSERT(a) _ASSERTE(a)
#define MTVERIFY(a) if(!(a))
PrintError(#a,_FILE_,_LINE_,GetLastError())
void PrintError(LPSTR linedesc,LPSTR filename,int lineno,DWORD errnum);
static void PrintError(LPSTR linedesc,LPSTR filename,int lineno,DWORD errnum)
{
LPSTR lpBuffer;
char errbuf[256];
#ifdef _WINDOWS
char modulename[MAX_PATH];
#else
DWORD numread;
#endif
FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER|FORMAT_MESSAGE_FROM_SYSTEM,
NULL,
errnum,
LANG_NEUTRAL,
(LPTSTR)&lpBuffer,
0,
NULL);
wsprintf(errbuf,"\nThe following call failed at line %d in %s:\n\n",\
%s\n\nReason:%s\n",lineno,filename,linedesc,lpBuffer);
#ifndef _WINDOWS
WriteFile(GetStdHandle(STD_ERROR_HANDLE),errbuf,strlen(errbuf),&numread,FALSE);
Sleep(3000);
#else
GetModuleFileName(NULL,modulename,MAX_PATH);
MessageBox(NULL,errbuf,modulename,MB_ICONWARNING|MB_OK|MB_TASKMODAT|MB_SETFOREGROUND);
#endif
exit(EXIT_FAILURE);
}
...全文
相关推荐
MTVERIFY.h
C++头文件,api调用错误诊断宏,对GetLastError()函数的封装,并解析错误
Mtverify.h头文件
在编写多线程程序时,调试是一个比较困难的事情,如果加入了此代码(采用宏定义),能够比较方便的显示出出错误的位置,加快开发的速度!
Win32多线程程序设计
1.适合新手作为起步教程,解释清晰,起步要求低,很有价值(内部包含一个Win32多线程程序设计的源代码,书籍40M,无法上传);<br>2.以前下载的时候多半要下载到很多看不了,解压出错的东西,这次我将自己手里的资料整理了一下,给大家一个质量的保证!<br>3.请大家下载后点击评论,这样即看到书,有不丢失您的分数!<br>4.电脑里存储了大量文章和源代码,我会整理后将经典书籍不断发布到网上,供编程新手参考!
操作系统实验代码 (哲学家问题,读写问题)
有五个哲学家围坐在一圆桌旁,桌中央有一盘通心粉,每人面前有一只空盘子,每两人 之间放一只筷子每个哲学家的行为是思考,感到饥饿,然后吃通心粉.为了吃通心粉,每 个哲学家必须拿到两只筷子,并且每个人只能直接从自己的左边或右边去取筷子 有一个公用的数据集,有很多人需要访问,其中一些需要阅读其中的信息,一些需要修改其中的消息。阅读者可以同时访问数据集,而写入者只能互斥的访问数据集,不能与任何的进程一起访问数据区。
基于VC的进程通信程序
这是一个进程通信程序,是你对进程通信有深刻的理解,将数据写入内存或采用某一方式发给其他进程,另一方面读取内存,采用某一方式接受其他进程的数据。我的一个师弟让我帮他做的,好像是他们的作业吧,本科的去看看吧,会对作业有启迪的。


