2011-12-05 12 views
3

私は現在90'sに住んでいます。私はこのレガシーコードを手渡しました。私はCOM/OLE/MFC/ATLについては知識がありませんので、私はこれを尋ねています。経験を積んだ人がこの問題を追跡するのに役立つことを願っています。COM/OLE、古いコードと頭痛

  • これは本当に古い/従来のMFC/ATLアプリケーションです。
  • それは起動しますが、最終的にはCFormViewの中にクラッシュ:: HandleInitDialog(atlmfc \ SRC \ MFC \ viewform.cpp)

は私が手デバッグ出力はこれです:

CoCreateInstance of OLE control {6A24B340-7634-11D3-A5B0-0050044A7E1A} failed. 
>>> Result code: 0x80040154 
>>> Is the control is properly registered? 

私は同じくらい知っていますこれはコンポーネントの登録に失敗したことや解決策が原因であるとは言えますが、私はこの依存関係がどのようになっているか把握する方法を知っていますが、コードの実行可能な古い実行可能ファイルがあります。 DLLが見つからない場合、私は実際にはわかりませんが、私はOLEが何であるか知っています。これをデバッグしてください。

+0

同様の問題を取得し、誰を助けるために、私はこのようなクラッシュを持っていたと私はアンロード、および依存関係ウォーカーが開かなった 'ocx'をクリックしました。それは 'ocx'が特定のdllを開くことができなかったことを示しました。私が正しいパスに置かれたとき、プログラムはクラッシュせずに走りました。 – Nav

答えて

4

dxDBGrid.dllのように見えます。 OLEは単なるオブジェクトのリンクと埋め込みです。 dxDBGrid.dllを見つけて、それが登録されていることを確認する必要があります。 regsvr32を使用して登録することができます。

explanation of regsvr32

+1

彼のウイルススキャナによってもブロックされている可能性があります。 –

+0

あなたはレジストリを検索することができます...ファイルがハードコードされているファイルパスから読み込まれている場合、ファイルが期待通りでないかもしれません...(つまり、プログラムファイルとプログラムファイル(x86)) –

+0

多くの場合そうですが、dxDBGridであり、他のコンポーネントではないことがわかります。私が持っているすべてのDLLの中で、何が含まれているかを知りたいと思います。私が言ったように、それはレガシーコードですが、私はまだすべてを理解していません...特定のDLLにどのGUIDが含まれているか把握していませんか? –

関連する問題