FAQ
エラー:ArcObjects が GDIplus を呼び出すとき、ArcGIS Engine アプリケーションがクラッシュする
ナレッジ番号:5253 | 登録日:2023/07/26 | 更新日:2024/11/21
エラー メッセージ
バージョン 10 において、ArcGIS Engine コントロールを使用した COM ベースのアプリケーションが、次のような未処理例外エラー メッセージ ダイアログをともなって中断することがあります。
"Unhandled exception as 0x7x91b21a (ntdll.dll) in
ArcGIS_Engine_10_PageLayout_Issues.exe:0xC0000005: Access
violation writing location 0x00000010."【原因】
このクラッシュは、GDI+ が正しく初期化される前に、GDI+ を使用している ArcGIS コンポーネントによって引き起こされます。この問題は、Esri が現在調査中ですが、現時点では次の回避方法のいずれかを使用してください。
【解決方法/回避方法】
このエラーに対しては、2 つの回避方法があります。
回避方法 1:
GDI+ オブジェクトを作成する前に、GdiplusStartup を呼び出す必要があります。そして、GdiplusShutdown を呼び出す前に、すべての GDI+ オブジェクトを削除する(それらをスコープ外にする)必要があります。次の C++ コードをアプリケーションに追加してください。
Windows.h
Gdiplus::GdiplusStartupInput gdiplusStartupInput;
Gdiplus.h
アプリケーションを初期化します(たとえば、X() 関数内で)。
ULONG_PTR gdiplusToken;
Gdiplus::GdiplusStartup(&gdiplusToken, &gdiplusStartupInput, NULL);
非初期化します。
Gdiplus::GdiplusShutdown(gdiplusToken);
回避方法 2:
ダイアログ ボックスに ToolbarControl を追加します。この操作は GDI+ を初期化します。
備考:
プラットフォーム Windows XP, Vista, Win 7
ESRI Art. Number 38311
メタデータ
種類
製品