3

当社の製品はMicrosoftOfficeのアドインであり、GUIが含まれています。

Graphics.DrawImage画像の描画に使用します。

問題は、GUIがMicrosoft Outlookに表示されないという問題を報告した特定のユーザーがいることですが、同時にMicrofotWordでは正常に機能します。

ログに表示されるエラーは次のとおりです。

System.Runtime.InteropServices.ExternalException: A generic error occurred in GDI+.
    at System.Drawing.Graphics.CheckErrorStatus(Int32 status)
    at System.Drawing.Graphics.DrawImage(Image image, Int32 x, Int32 y, Int32 width, Int32 height)

これは、ある種の限られたリソースの問題を示唆している可能性があることを私は知っていますが、問題は、同じGUIがMicrosoftWordで完全に正常に実行されているということです。さらに、私たちが描画しようとしている画像は、16x16の小さなアイコンです。

特定のプロセスがこれを引き起こす可能性のある制限はありますか?

更新:この問題は、ファイルストリームから適切にロードされなかった特定のイメージで発生しました。

4

1 に答える 1

1

を使用する場合MemoryStream、画像が破棄されるまで、画像のすべての使用中にストリームを維持することが重要です。これは、メモリ ストリームによって表されるメモリ領域からイメージを読み取る必要がある場合があるためです。

画像が破棄される前にストリームが閉じられた場合、メモリ領域が無効になる場合とされない場合があります。

画像を破棄すると、ストリームも閉じられます。

于 2012-12-02T16:44:42.790 に答える