0

.ocxのいくつかのファイルに問題がありますvb6。2 つのコンポーネントを登録していますが、プロジェクトに両方を追加しようとすると、登録する必要があると表示されます。新しいファイルをsysWOW64フォルダーにコピーしようとしましたが、まだ機能しません。

4

1 に答える 1

0

これは、レジストリに何らかの破損や競合がある場合に発生することがあります。これを修正する 1 つの方法は、2 つのアイテムをプロジェクト内のフォルダーに配置し、手動で参照に移動してそのローカル コピーを選択して追加することです。これにより、新しいオブジェクトとして自動的に登録され、多くの場合 (常にではありませんが) 修正されます。新しいパスにタグを付けることで破損を修復し、多くの場合、直面している問題を解決します。唯一の問題は、将来のプロジェクトで、プロセスを繰り返すか、アイテムにアクセスする必要がある可能性があることです。

よりクリーンなアプローチは、高度な検索を実行してシステム上のファイルのすべてのインスタンスを見つけることです。多くの場合、それらはいたるところにあります。これらのパスを取得したら、regsvr32 /u <filepath.filename>それぞれをレジストリから削除して共通領域に配置し、1 つの場所から登録する必要があります。これで、問題regsvr32 <filepath.filename>なく動作するはずです。

マシン上のすべてのインスタンスを見つける最も簡単な方法 (少なくとも私にとって) は、コマンド プロンプトに移動し (XP よりも新しいものを使用している場合は管理者として)、次のように入力するだけです。

C:
cd\
dir /s <filename.ext> > c:\files.txt

完了するまで待ちます。その時点でそのファイルを開くと、必要なファイルへのすべてのパスが表示されます。regを解除して実行するために必要なコマンドを追加することで、テキストファイルを簡単にバッチファイルに変換できます。出来上がり、迅速でかなり痛みがありません。いつでも登録を解除して、登録されていない、または登録できないことについて泣き言を言った場合でも、心配しないでください。ただ認めて先に進みます. 一部の OCX および DLL には、登録エントリ ポイントがありません。登録して、それができないと不平を言う場合は、最初に述べた方法で、参照に直接リンクしてプロジェクトにドロップする以外にほとんど選択肢がありません。

最後に、64 ビット互換でない限り、元の OCX のバージョン管理とバイナリ管理に応じて、WOW システム フォルダーではなく、system フォルダーと system32 フォルダーに配置する必要はありません。

于 2013-09-27T07:20:53.970 に答える