-1

C ++のMFC AfxIsValidAddressの代替?

4

1 に答える 1

4

その機能は実際にはそれが言うことをしません...

メモリ範囲をチェックして、プロセスの空間アドレスにマップされているかどうかを確認すると述べています。しかし実際には、ライブラリのほとんどのバージョンでは、NULL 値をチェックするだけです。

古いバージョンの Windows では、 IsBadReadPtr()とその仲間に依存していたことが理由のようです。しかし、これらの関数は完全に廃止されており、(MSDN によると) 新しいコードでは使用しないでください。したがって、動作が変更されました。

つまり、実際にメモリ範囲を確認したい場合は、VirtualQuery()が最適なオプションです。

于 2012-09-17T16:40:38.630 に答える