2014-08-28 42 views
1

我正在考慮使用IsBadCodePtr來區分predefined resource type和自定義資源類型名稱。使用'IsBadCodePtr'來區分給定的資源類型是否很好?

使用IsBadCodePtr API來查找給定的資源類型是屬於某個預定義的資源類型還是有更好的選擇是一種好的做法(甚至是最好的方法?)嗎?

請注意,我在談論資源類型名稱而不是ID。

+2

來自文檔的注意事項:*重要此功能已過時,不應使用。儘管它的名字,它並不能保證指針是有效的,或指出的內存是安全的使用。欲瞭解更多信息,請參閱本頁的註釋。* - 這應該是一個足夠好的理由不使用它。 – 2014-08-28 13:08:11

+0

那麼這可能是爲了共同的目的,但它沒有提到任何關於資源,它似乎是一個好主意,使用它。這就是爲什麼我問什麼會出問題。我已閱讀文檔。 – 2014-08-28 13:09:36

+0

@Benjamin:資源是數據,而不是代碼。我不知道你怎麼說,使用函數指針設計的函數來測試數據指針似乎是個好主意。 – 2014-08-28 13:16:23

回答

5

這不是好習慣。你應該改用宏IS_INTRESOURCE,它告訴你是否用MAKEINTRESOURCE創建了一個資源指針(這意味着它不是一個真正的指針)。請注意,這並不意味着它是「預定義」,因爲您可以在自己的資源ID上調用MAKEINTRESOURCE

IsBad____Ptr函數不應該在一般情況下使用。如文檔所述:

此功能已過時,不應使用。

微軟的Raymond Chen在這篇博客文章中有更多的信息:IsBadXxxPtr should really be called CrashProgramRandomly

+0

謝謝。我將使用宏。我甚至都不知道! – 2014-08-28 13:15:11

相關問題