2

Windows Server 2003 Standard x64 R2 にいくつかの Vb6 コンポーネントを展開しようとしています。私は通常、これらを com+ アプリケーションで実行し、COM+ アプリケーションを作成してすべてのコンポーネントを追加するという通常の手順を実行しました。実際にコンポーネントのいずれかを使用しようとするまで、すべてが正常に機能しているように見えました。ある種の「ActiveX コンポーネントはオブジェクトを作成できません」または「アプリケーション定義またはオブジェクト定義のエラー」またはそれに類似したものになります。

可能な限り多くの変数を削除するために、最も単純なコンポーネントを使用するための非常に単純な VB フォームを作成し、それを試しました。いいえ。そこで、コンポーネントをインストールするための簡単なインストールを作成しました。だから私は期待を込めてより複雑なコンポーネントの1つを試しました...しかし、インストール後もコンポーネントを正常に呼び出すことができません。Dependency Walker を使用すると、何らかの理由で msvbvm60.dll が正しく登録されていないことがわかりました。

VBRUN60.exe と VBRUN60SP6.exe をダウンロードしてインストールしてみました。管理者アカウントと同じように実行し、「アクセスを制限してこのプログラムを実行する」のチェックボックスを削除することさえできます。msvbvm60.dll を SysWow64 ディレクトリに手動で登録しようとしました。

何も機能していないようです。登録されないだけです。誰か提案はありますか?この時点で、私は何でも試してみます。

ありがとう

4

3 に答える 3

0

コンポーネントを手動で登録する場合は、特に注意する必要があります。64ビットOSを使用しているため、2つのバージョンのzippy32.exeがあります。VB6コンポーネントを登録するときは、次の場所にある32ビットバージョンのzippy32を使用する必要があります。

%WINDIR%\SysWOW64\regsvr32.exe

コマンドプロンプトでzippy32と入力するだけの場合、通常は64ビットバージョンが選択されます(%WINDIR%\ system32が%PATH%環境変数に含まれているため)。そのため、上記のようにフルパスを使用してください。

32ビットMSIを使用してコンポーネントをインストールしている場合、このバージョンが自動的に選択され、登録は正常に機能するはずです。

于 2012-10-24T10:09:57.307 に答える
0

Visual Basic 6 の登録されていないコンポーネントで問題が発生しましたが、あなたが言及しているものと同じものを使用しようとはしていません。どのregサーバーが使用されていても、手動で登録しても問題は解決しませんでした

問題は(最終的に)Internet Explorer 10であることが判明しました。それをアンインストールすると(Windows 7がIEをWindowsアップデートとして処理するため、古いバージョンを公開するために最初に新しいバージョンをアンインストールすることを意味しました)機能しました。その後、最新の IE を再インストールしても問題ありません。

于 2014-05-14T11:00:58.260 に答える
0

まだ行っていない場合は、Process Monitorを試してみてください。これは、DLL 登録の問題で私が使用した最高のツールの 1 つです。

次のリンクは、いくつかの有用な手がかりを提供します。

それが役立つことを願っています:D

于 2012-10-24T11:53:31.360 に答える