26

誰かのためにレガシー vb6 アプリケーションの作業を手伝うように頼まれたので、このガイドに従って Windows 7 x64 ラップトップで Visual Studio 6 を使用することにしました。

正常にインストールされ、Microsoft Windows Common Controls 6.0 (sp6) を除いてすべてが機能していることがわかります。Microsoft Windows Common Controls-2 6.0 (sp6)、Microsoft Windows Common Controls 5.0 (sp2) などはすべて問題なく動作します。ただし、Microsoft Windows Common Controls 6.0 (sp6) コンポーネントを追加しようとすると、次のエラーが表示されます。

'' could not be loaded

画像を追加できなかったので、正確に見たい人のためにスクリーンショットをここにアップロードしました。

http://i.imgur.com/7aym4xB.png

MXCOMCTL.OCX、MSCOMCT2.OCX、msdatsrc.tlb の登録/登録解除/再登録を試みましたが、すべて成功しませんでした。また、Windows コモン コントロールで問題を引き起こした可能性のある既知のセキュリティ更新プログラムもアンインストールしました。IE11 は IE10 のように MSCOMCTL.OCX で問題を引き起こさないと報告されていますが、私は IE11 を削除しました。

Windows XP SP3 互換モードで VB6.EXE を実行しています。ビジュアル テーマを無効にし、デスクトップ コンポジションを無効にし、高 DPI 設定でディスプレイのスケーリングを無効にします。また、管理者として実行します。

また、このコントロールを使用する以前のプロジェクトを開こうとしましたが、読み込み中に失敗し、生成されたエラー ログに次のようなスクリーン ショットと同じ「空白」エラーが表示されます。

行 35: コントロール lvData のクラス MSComctlLib.ListView は、読み込まれたコントロール クラスではありませんでした。行 223: コントロール Stat のクラス MSComctlLib.StatusBar は、読み込まれたコントロール クラスではありませんでした。

したがって、いくつかの提案のように.vbp内のバージョンの問題ではないことがわかります(新しい空のプロジェクトでも発生するため)。

私は機知に富んでいます。どうやら、VB6 と Windows 7 x64 の両方が (Windows コモン コントロールを使用して) 正しく動作するようになったようですが、私が試したことは何もありません。ここにいる誰かがこれに遭遇したか、何が起こっているかについていくつかのアイデアを持っていることを願っています.

4

13 に答える 13

11

「C:\ Windows \ SysWOW64」内から2つのディレクティブを実装すると、すでに機能していました

regsvr32 MSCOMCTL.OCX
regtlib msdatsrc.tlb

DOS ボックスは管理者モードにする必要があることに注意してください。これに先立って、「コントロール tvTreeView のクラス MSComctlLib.TreeView は読み込まれたコントロール クラスではありませんでした」および「コントロール lvListView のクラス MSComctlLib.ListView は読み込まれたコントロール クラスではありませんでした」というエラーが発生し続けました。

また、64 ビットの Windows 7 で Visual Studio 6 を SP6 の更新と共に使用しています。私は同じ問題のためにここに追いやられました。私の場合、レジストリを調べる必要はありませんでした。

于 2014-01-28T04:04:40.170 に答える
3

この問題を何時間も検索し、何百もの Web サイトをクリックしましたが、どれも機能しませんでした。

私の最終的な解決策:

  1. 実行:cmd
  2. cd c:\Windows\SysWOW64 (場所にロケート)
  3. regsvr32 MSCOMCTL.OCX

これは最初のものを解決します。2 つ目の場合:

  1. 実行: cmd
  2. CD c:\Windows\Microsoft.NET\Framework\v4.0.30319
  3. regtlibv12 msdatsrc.tlb

終わり。

これは誰にとってもうまくいくとは限りません(システムのバージョンの理由などを考慮して)

于 2016-12-01T21:15:22.627 に答える
0

W7 64ビットにVB6をインストールすると、VB6 IDEがコモンコントロール(Sp6)、特にcomctrlとmsmaskをロードしないという問題がありました。regsrv32(昇格)を使用して提案されたすべてのソリューションを試し、レジストリを編集し、MSなどによって提案されたvbpのバージョン番号を変更しました。すべて失敗しました。これらのソリューションは、他の 2 台の PCS では機能しましたが、これでは機能しませんでした。最終的にIE11を削除したところ、その後すべて正常に動作しました。この PC には IE10 がインストールされたことはありませんでした。

上記の簡単な解決策では、VB6 IDE が ([プロジェクト] の下の [コンポーネント] メニュー選択を使用して) 共通コントロールをロードしないという問題に対処していないと言わざるを得ません。オブジェクトがロードされていないというエラーが表示されます。したがって、これは、ロードされないこれらの共通コントロールを使用しようとする新しいまたは古いプロジェクトで発生します (そして、私はこれを自分自身で証明しました)。

したがって、この問題を抱えている人への私の提案は、regsrv32 ルートを使用して手動登録ソリューションを試してから、vbp を編集してバージョンを変更し、これらが失敗した場合は IE11 (および確実に IE10) をアンインストールすることです。ただし、これはまだ 100% の解決策ではない可能性があります。なぜなら、既存のプロジェクト ファイル ".vbp" に間違ったコモン コントロールへの参照が含まれている場合は、手動で修正する必要があるためです。これは、新しいプロジェクトをロードし、必要なコンポーネントを IDE 内にロードする場所です。をクリックし、メモ帳を使用して新しく作成した vbp を編集し、共通コントロールのバージョン番号を既存の vbp ファイルにコピーします。

于 2016-02-08T13:48:08.610 に答える
0

シンプルなソリューション

  1. 新しい空のプロジェクトを作成して保存します
  2. NOTEPAD を使用して新しいプロジェクトの .VBP を開き、MSCOMCTL 行をコピーします。
  3. NOTEPAD を使用してプロジェクトの .VBP ファイルを開きます
  4. MSCOMCTL 行を置き換えて保存します

終わり

幸運を

于 2016-01-28T12:33:41.297 に答える
0

同じ問題が発生しますが、regsvr32 MSCOMCTL.OCX を実行すると、以下のエラーが発生しました。

モジュール "MSCOMCTL.OCX" が読み込まれましたが、DllRegisterServer の呼び出しがエラー コード 0x8002801c で失敗しました。

管理者としてCMD.EXEを実行すると、問題が解決しました。

レジストリの問題にアクセスするには、VB6.EXE を管理者として実行する必要がある場合もあります。

幸運を。

于 2016-12-19T10:06:25.173 に答える
0

これは、Microsoft が MScomCtlLib の更新プログラムをリリースした際に、Microsoft によって誤ってパッチが適用され、レジストリ エラーが発生したことに関連していると思われます。

以下に記載されているアドバイスに従っていただければ幸いです。

https://support.microsoft.com/fr-fr/kb/2597986

于 2016-09-29T14:24:47.357 に答える
0

=> ジェイが言ったことは、c:\windows\system32 以外の他のパスを指しているレジストリ エントリを削除するだけです。これらがエラーの原因です。vb6 IDE でこれらのエラーが発生し、それらの異常なレジストリ エントリを削除した後問題は修正されました。魅力のように機能します。

于 2016-08-02T01:11:04.920 に答える