#define ValidateReadPtr(p,cb) 0
我想不出这种宏的用例,你呢?
最佳答案
我只能在 Windows Mobile SDK 的 ValidateReadPtr()
header 中找到 wxdebug.h
宏(即使 MSDN 指出它是 DirectShow API 的一部分)。
在 wxdebug.h
中,它被定义为:
#define ValidateReadPtr(p,cb) \
{if(IsBadReadPtr((PVOID)p,cb) == TRUE) \
DbgBreak("Invalid read pointer");}
我怀疑在您的项目中它被定义为
0
是出于以下一个或两个原因:wxdebug.h
header 不可用(即,不使用 Windows Mobile SDK) IsBadreadPtr()
的文档说,“重要此函数已过时,不应使用。尽管名称如此,但它不能保证指针有效或指向的内存可以安全使用。有关更多信息,请参阅备注.. .”。 Raymond Chen 写了一篇关于 IsBadReadPtr()
问题的文章:IsBadXxxPtr should really be called CrashProgramRandomly 关于c++ - 这样的宏有什么用?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3915379/