2012-02-27 9 views
0

私はいくつかのテストコードを使ってVisioドキュメントを作成しています。私はWindow 7の64ビットでVisual Studio 2010を使用しています。私は私のプログラムを実行し、プログラムに新しいVisioのアプリケーションオブジェクトを作成しようとすると、私は例外次チエニルを得る:64ビットシステムに32ビットDLLを登録する

CLSID {00021A20-0000-0000-C000-000000000046}を持つコンポーネントのCOMクラスファクトリを取得するため失敗しました次のエラー:80040154クラスが登録されていません(HRESULTからの例外:0x80040154(REGDB_E_CLASSNOTREG))。私はプロジェクトの設定は、32ビットアプリケーションを構築するためにある検証

Visio.Application va = new Microsoft.Office.Interop.Visio.Application(); 

はここで例外が発生したコードです。私は32ビット.COM Visio dllを読み込むことができない64ビットWindowsに戻ってそれを追跡しました。私はregsvr32を使用してDLLを登録しようとしましたが、エントリポイントDLLregisterserverが見つからないというエラーメッセージが表示されます。 MDSNは、ファイルが有効な.dllではないことを示しています。今はVisual StudioライブラリからMicrosoft.Office.Interop.Visio.dllを登録しようとしています。これのための修正はありますか? .COMライブラリの64ビット版はありますか?

+0

使用している.netのバージョンは? – Dinesh

+0

このリンクを確認してください。 http://stackoverflow.com/questions/4021796/error-80040154-class-not-registered-exception-when-initializing-vcprojectengin – Dinesh

+0

32ビットまたは64ビットのOfficeを使用していますか?それは問題ではなく、Windowsのビット数です。 –

答えて

0

this linkに従ってください。このページでは、64ビットシステムを使用していても、32ビットシステムとしてdllをインストールする方法について説明します。

REGSVR32の32ビットバージョンは、path-%systemroot%\ SysWoW64 \ regsvr32.exe 。

すごい=あなたが負荷にしようとしているWindowsの

+0

私はregsvr32の両方のバージョン(32ビットと64ビット)を試しましたが、両方とも同じメッセージで失敗します。今のところ、私は破損したdllファイルを想定し、きれいなコピーを取得しようとします。 –

0

にWindowsの略で相互運用機能アセンブリは、ネイティブのVisioのDLLに依存します。これらのDLLをインプロセスでロードするには、プロセスのビット数に合わせる必要があります。

したがって、32ビットVisioがインストールされている必要があります。

関連する問題