"AfxIsValidAddress"函数的等效标准函数是什么?

What is the equivalent standard function of the "AfxIsValidAddress" function?

本文关键字:函数 是什么 标准 AfxIsValidAddress      更新时间:2023-10-16

i使用的是MFC项目,该项目应在平台独立的环境中使用,而不是MFC/AFX。

例如:相反,将使用std :: string,而是使用std :: mutex。

c 11 std :: - 相当于mfc函数" afxisvalidaddress"?

等同于

在标准库中没有类似的 AfxIsValidAddress(),看来该函数实际上并没有进行太多的验证。

请参阅Afxisvalidaddress(和其他(无法正常工作,因为该功能最终只是对NULL进行检查。关于有效地址检查功能的家族,它还可以说:

功能上有几个Win32 API:IsBadWritePtrIsBadHugeWritePtrIsBadReadPtrIsBadHugeReadPtrIsBadCodePtrIsBadStringPtr。至少从2004年开始就已经知道这些 功能被损坏了,无法修复,不应使用。这 全能的雷蒙德·陈(Raymond Chen(和拉里·奥斯特曼(Larry Osterman(都讨论了原因 细节,所以只是一个简短的重新进行:isbad*ptr,都可以访问 经过测试的地址并捕获任何例外。问题是一个 这些违规行为中的某些(即,那些在堆栈后卫 页面(永远不要抓住 - 操作系统使用它们正确放大 线程堆栈。

我认为最好只遵循标准的C 程序检查指针是否不是nullptr或更好地限制指针的使用。