web-dev-qa-db-ja.com

Visual Studio 6 Windows Common Controls 6.0(sp6)Windows 7、64ビット

誰かのためにレガシー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でVB6.EXEを実行しますXP SP3互換モード。視覚テーマを無効にし、デスクトップコンポジションを無効にし、高DPI設定でディスプレイスケーリングを無効にします。管理者として実行します。

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

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

だから、それは.vbp内のバージョンの問題ではないことを教えてくれます(新しい空のプロジェクトでも同様です)。

私は機知に富んでいます。どうやらVB6とWindows 7 x64の両方が(Windows Common Controlsを使用して)正しく動作するようになったようですが、何も試さずに問題を軽減しています。私はここの誰かがこれに遭遇したか、何が起こっているのかについていくつかのアイデアを持っているかもしれないことを望んでいます。

24
Jay

ここでアイデアの返信を待っている間に、私は何かを試してみることにしました。管理者としてregeditを実行し、HKEY_CLASSES_ROOT\TypeLibキーに移動し、「MSCOMCTL.OCX」を検索しました...この.ocxファイルを参照するすべてのキーを削除しました。

レジストリ全体を検索し、見つかったものを削除した後、管理者としてコマンドプロンプトを実行しました。次に、C:\ Windows\SysWOW64に移動して、次のコマンドを入力しました。

regsvr32 MSCOMCTL.OCX
regtlib msdatsrc.tlb

これらの2つのファイルを再度登録すると、すべてが正常に機能しています!私は、このソリューションが役に立たないことを求めて、何時間もウェブを探しました。ここで質問を投稿した後、自分で修正しました:(Visual Studio 6は時代遅れですが、うまくいけば他の人にも役立つかもしれません!

47
Jay

2つのディレクティブの実装は、「C:\ Windows\SysWOW64」内から既に機能していました。

regsvr32 MSCOMCTL.OCX
regtlib msdatsrc.tlb

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

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

11
Loloy D

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

私の最終的な解決策:

  1. run: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

できた。

これはすべての人に機能するとは限りません(システムバージョンの理由などを考慮して)

3
yingliu

VB 6プロジェクトをロードするのと同じ困難を抱えていました。サンプルエラーメッセージは次のとおりです。 "コントロールprgExecutionのMSComctlLib.ProgressBarクラスはロードされたコントロールクラスではありませんでした。"

この問題は、Microsoft Magicによって次のように解決されました。壊れたプロジェクトで[プロジェクトコンポーネント]ウィンドウを開きました。 [参照]をクリックすると、MsComctl.ocxファイルが見つかりました。 [OK]をクリックしました。 VB 6その後スタックしました(アプリケーションが応答しません)。しばらくして、タスクマネージャーを使用してVB 6アプリケーションを終了しました。

その後、魔法のように、VB 6プロジェクトを開いてプログラミングフレンドにこのプロジェクトがどのようなPOSであるかを表示すると、すべてのコントロールが期待どおりにリンクされ、リンクされました。 。

2
Kay

実行コマンドregeditを使用してレジストリエディターを開きます。

HKEY_CLASSES_ROOT\TypeLib Keyを見つけて、「MSCOMCTL.OCX」を検索し、この.ocxファイルを参照したすべてのキーを削除しました。

管理者モードでコマンドプロンプト(cmd)を開きます。次のコードを入力し、

32ビットマシンでは、

cd c:\Windows\System32
regsvr32 MSCOMCTL.OCX
regtlib msdatsrc.tlb
regsvr32 MSCOMCT2.OCX

64ビットマシンでは、

cd c:\Windows\SysWOW64
regsvr32 MSCOMCTL.OCX
regtlib msdatsrc.tlb
regsvr32 MSCOMCT2.OCX
1
Codemaker

ちょうど今日、VB6コードをWindows/64ビットで実行できる(疑わしい)喜びがありました。私はこのスレッドに出くわしましたが、提案された解決策はどれもうまくいきませんでした。 「プロジェクト->参照...」メニューを使用して参照を追加することもできませんでした。

実行するには、VB6プロジェクトファイル(* .vbp)を手動で変更する必要がありました。ロードの問題が発生したすべてのライブラリについて、次の表記法を使用して参照として定義する必要がありました。Object= {Registry Key}#Version#0; LIBRARY.OCXの例:Object = {FAEEE763-117E-101B-8933-08002B2F4F5A}#1.1#0; DBLIST32.OCX

ライブラリを登録する必要はありませんでした(regsvr32を使用)。これらはすべて正しく登録されていました。私の解決策が機能する理由は、(「Reference = *\G {[...]」表記の代わりに)「object = {[...]」表記が使用される場合、VB St​​udioレジストリキーのみを使用しており、C:\ Windows\SysWOW64にルート化されますが、別の方法ではC:\ Windows\System32を検索します

ところで、IE11がインストールされています。これが重要かどうかにかかわらず、ビルGだけが知っているかもしれません。私の推測では、どのIEがインストールされているかにかかわらず、私のソリューションは機能します。このスレッドで説明したように、不足しているライブラリの登録を解除して登録する必要がある場合があります。

同様の問題に直面している人を助けることを願っています。

1
Chris

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

モジュール「MSCOMCTL.OCX」はロードされましたが、DllRegisterServerへの呼び出しはエラーコード0x8002801cで失敗しました。

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

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

幸運を。

0
user3107325

VB6 IDEはW7 64ビット、特にcomctrlおよびmsmaskにインストールされたVB6で共通コントロール(Sp6)をロードしないという問題がありました。regsrv32(昇格)これらのソリューションは、他の2つのPCSで機能しましたが、これは機能しませんでした。最終的にIE11を削除し、その後はすべて正常に機能しました。 thsi PC-IE8からIE11に直接移行し、IE8の使用にバックトラックすることを余儀なくされました。

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

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

0
AlexKen

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

以下に記載されているアドバイスに従うと信じています。

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

0
OGUER

VB6でWindows 7-64を実行しているときに同じ問題が発生しました。上記の登録解除および再登録のソリューションを試しましたが、問題は解決しませんでした。次に、VB6コンポーネントで、Microsoft Windows Common Controls -2 6.0(SP6)とMicrosoft Windows Common Controls -3 6.0(SP5)の両方を参照していることに気付きました。 SP5リファレンスを削除しましたが、すべて正常に動作するようになりました。 -2 6.0 SP6は-3 6.0(SP5)に優先し、両方が存在する場合、同じコントロールへの参照が2つあるようです。お役に立てれば。スティーブ

0
Steve

私の解決策は、Windows 10ボックスのMSCOMCTL.OCXを、MS AccessもインストールされているWindows 7ボックスのMSCOMCTL.OCXに置き換えることでした。何らかの理由で、同じ名前の異なるMSCOMCTL.OCX 2.0コントロールがあります。

これはおかしく聞こえ、他の人には役に立たないかもしれませんが、このMSCOMCTL.OCXをreadmeファイルで保存し、新しいインストールエラーを毎回修正しています。

windows 10ボックスに付属している現在のMSCOMCTL.OCXの登録を解除し、削除して、保存した古いものを登録します。

0
JustJohn

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

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

完了

幸運を

0
A.Wahi