2011-07-14 16 views
1

のCPUの設定でコンパイルされた.NET 3.5アプリケーションがあります。アプリケーションは、interopアセンブリを使用してOCXファイルを参照しています。Windows 7のOCXローディングでの64ビットの問題

アプリケーションがWindows 7 32ビットにインストールされていると、すべて正常に動作します。同じappplicationは、Windows 7の64ビット版にインストールされている場合、我々はエラーを取得:

Retrieving the COM class factory for component with CLSID {CCB90182-B81E-11D2-AB74-0040054C3719} failed due to the following error: 80040154

Process Monitorを使用してSysInternalsから私は、システムが以下のレジストリキーをロードしようとしている32ビットOS上でそれを見ることができました。

HKCR\Wow6432node\CLSID\{above CLSID}\InprocServer or 
HKCR\Wow6432node\CLSID\{above CLSID}\InprocServer32 

これは、アプリケーションが動作する理由です。 64ビット版で

は、Windowsが存在し、それらの

HKCR\Wow6432node\CLSID\{above CLSID}\InprocHandler or 
HKCR\Wow6432node\CLSID\{above CLSID}\InprocHandler32 

なしを探しています。

Windows 7 64ビット版ではどのように動作させることができますか?

答えて

0

InprocServerなので、呼び出しプロセスのコンテキストで実行されます。呼び出し元プロセスがx64プラットフォームで実行されているAnyCPUの場合、x64 COMコンポーネントのみを実行できます。

したがって、x64バージョンのコンポーネントを入手するか、x86プラットフォーム用にアプリケーションをコンパイルする必要があります。

このCOMコンポーネントは、同様に機能するローカルまたはリモートサーバーであるかどう...

0

は時々、次のアクションを助けることができる:

@echo un-register 
regsvr32.exe completePathOfOcxOrDllFile -u 
@echo register 
regsvr32.exe completePathOfOcxOrDllFile -u 
@pause 
@exit 
とfilexx.batを作成

そして、もちろん、batファイルをadminとして実行します(ファイルを右クリックして、adminとして実行します)。

関連する問題