Win32 APIs
すべての戻り値をチェックする必要がありますか? たとえばAdjustWindowRect
、SetWindowLong
、GetWindowLong
などの関数は実際に失敗する (内部エラーが発生する) 可能性がありますか? または戻り値はほとんどの場合、間違った引数を入力しないというフェールセーフ メカニズムですか?
質問する
1001 次
1 に答える
2
POSIXとは異なり、Win32 APIは、すべての呼び出しのエラー条件の適切なリストを提供しないようです。一部の関数は実際には失敗することはありませんが(悪い引数の場合を除く)、理論的には失敗する可能性があります。ユーザー入力を信頼してはならないのと同じように、文書化が不十分なライブラリを盲目的に信頼してはなりません。
APIを処理する最良の方法は、すべての呼び出しを関数でラップしてエラーチェック(API間およびAPI内で大きく異なる)を実行することです。これにより、すべての特性が解決される一種の「高レベル」APIが得られます。アウト。次に、成功、エラー、および警告を、言語に適した手法(例外、エラー/警告コールバック、合計タイプなど)に変換できます。
于 2013-01-23T17:33:03.027 に答える