2017-09-07 14 views
-1
私はコードの下では、このエラー

は、CLSIDエラー

Retrieving the COM class factory for component with CLSID {819F123A-B24A-4EB8-BED1-B5DFC5CB5194} failed due to the following error: 80040154 Class not registered (Exception from HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG)).

に取得

とコンポーネントのCOMクラスファクトリを取得しますsyswow64フォルダにコピーし、dllを32ビットに変換しますが、運はありません。私はインターネット上で "VSPrinter8Lib"の32ビットバージョンを取得していない、私は32ビットregsvr32を使用して変換/登録することができます(エントリポイントが見つかりませんでしたエラーを取得していない)インストーラに付属しています)。最後の1週間以来殴られた種類。助けを求める。前もって感謝します。

+0

sysinternalsからprocmonを実行して、 .exeの名前を確認し、CLSIDが読み込まれる場所/場所/時刻を確認します。見た目がどこにもない場合、登録は期待どおりに機能しません。 –

+0

付属のパッケージをインストールしましたか?これはComponentOne製品であることをGoogleが速やかに示唆しているため、おそらく完全なインストーラーが必要な登録を担当するでしょう。それは前.NET(彼らは後継の.NET製品を持っている)のように見えるので、32ビットのみと思う。 – Craig

答えて

0

問題を解決できました。 ActiveXコントロールを使用する場合、Visual Studioはコントロールの動作を許可するためのActiveXの「バブル」を作成し、.NETプロジェクトがActiveXコントロールと通信できるように相互運用レイヤを作成します。私の例では、Visual Studioが作成したInteropレイヤ(Interop.VSPrinter8Lib.dll)を登録しようとしていましたが、実際のActiveXコントロール自体は登録していませんでした。したがって、必要なIntrop DLLのActiveX OCXファイルを取得する必要があります。 Interop.VSPrinter8Lib.dllの場所にvsprint8.ocxを作成し、OCXファイルを登録するディレクトリにこれらのファイルがすべてあることを確認してください(64ビットマシンの場合はC:\ Windows \ SysWow64にあるはずです)。また、コマンドライン(cmd.exe)が管理者として実行されていることを確認してください。例: 私はOCXファイルをC:\ Vineet \ vsprint8.ocxに保存し、以下のコマンドを実行しました。 c:\ windows \ syswow64 \ regsvr32.exe C:\ Vineet \ vsprint8.ocx

関連する問題