2008-10-02 8 views
3

大きすぎる数値を小さな型にキャストするため、Visual C++ 2008でランタイムチェックに失敗するという問題があります。失敗は外部DLLにあるので、私はそこでそれを修正することはできません。では、外部プロジェクトのランタイムチェックをどうやって切ることができますか?Visual Studioでランタイムチェックをオフにする

+0

どの実行時間チェックですか? – KTC

+0

デバッガが書きました: ランタイムチェック失敗#1 - 小さなデータ型にキャストするとデータが失われました。これが意図的だった場合は、キャストのソースを適切なビットマスクでマスクする必要があります。たとえば、次のようになります。 \t char c =(i&0xFF); –

答えて

-1

プロジェクトの設定で、より小さなタイプのチェックに常にキャストをオフにすることができます。

チェックがDLLにコンパイルされても機能しない場合は、デバッグ「最適化」ビルドの場合のみチェックが有効なので、非デバッグバージョンのDLLにリンクできます。もちろん、デバッグには影響が出るかもしれません。

3

再コンパイルできないこのDLLでキャスト(およびチェック)が行われている場合は、簡単にチェックをオフにすることはできません。

唯一できることは、問題を回避するためにDLLに渡すデータを変更することです。チェックを無効にするためにバイナリにパッチを当ててください。おそらくそれほど難しいことではありません。あなたは逆アセンブラでうまくいきますか?

関連する問題