3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

64bit移植時のMSFlexGridのエラーについて

Posted at

エラーが発生

32bitのアプリケーションを64bitへ移植する際に、
OnCreateを呼び出した後に下記のエラーで止まった。

Program: C:\Windows\system32\mfc140d.dll
File: d:\agent\_work\2\s\src\vctools\VC7Libs\Ship\ATLMFC\Src\MFC\occcont.cpp
Line: 925

俺の環境では以下のパスにファイルがある。
D:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\VC\Tools\MSVC\14.21.27702\atlmfc\src\mfc\occcont.cpp

FillListSitesOrWnds関数内のASSERT(IsWindow(pTemp->m_hWnd));でアサートにかかっていた。

エラー箇所までのTRACEの内容を確認して見ると、

\occsite.cpp(529) : AppMsg - CoCreateInstance of OLE control {6262D3A0-531B-11CF-91F6-C2863C385E30} failed.
\occsite.cpp(530) : AppMsg - >>> Result code: 0x80040154
\occsite.cpp(531) : AppMsg - >>> Is the control is properly registered?
\occcont.cpp(919) : AppMsg - Warning: Resource items and Win32 Z-order lists are out of sync. Tab order may be not defined well.
Debug Assertion Failed!

と出力されていた。
英語がわからないので、グーグル先生に聞いてみると、

OLEコントロール{6262D3A0-531B-11CF-91F6-C2863C385E30}のCoCreateInstanceが失敗しました。
>>>結果コード:0x80040154
>>>コントロールは正しく登録されていますか?
警告:リソース項目とWin32 Zオーダーリストは同期していません。 タブ順序が適切に定義されていない可能性があります。

OLEコントロールに問題が有るらしい!!!

内容についての確認

・結果コード:0x80040154(REGDB_E_CLASSNOTREG)の意味
クラスが登録されていないことを意味します。
・{6262D3A0-531B-11CF-91F6-C2863C385E30}の意味
グリッドコントロールの意味です。

結果

MSFlexGridが使用できなくなっていました。
この時代に、MSFlexGridを利用している人とかどれくらい居るのでしょうか?

MSFlexGridは64ビットでサポートされていないのでCListCtrlでそれっぽくしてみる事にしました。

3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?