基本的なVB6アプリケーションのみがWIN8で実行されていますか?GDI +、Keyhooks、FileSystem、RtlMoveMemory ApisなどのAPIの使用方法は異なりますか?
VB6はx86、Win8はx64です。
私はすでに読んだ: Windows8で実行されているVB6?
基本的なVB6アプリケーションのみがWIN8で実行されていますか?GDI +、Keyhooks、FileSystem、RtlMoveMemory ApisなどのAPIの使用方法は異なりますか?
VB6はx86、Win8はx64です。
私はすでに読んだ: Windows8で実行されているVB6?
Windows 8は、Windowsデスクトップアプリの基本的なAPIを変更しません。(もちろん、Windows RTの場合を除く)
Windowsの将来のバージョンもそうではありません。これらのAPIに変更を加えると、既存のすべてのアプリケーションとの互換性が失われます。
Windows8x64でVB6アプリのテストを開始しました。アプリは巨大で複雑です。古いサードパーティのOCXコントロールなどでも、一般的には機能しているように見えます。ADO/ MDACは、さまざまなバージョンのSQLServerで正常に機能します。正常に機能しているように見えるWin32API呼び出しもたくさんあります。また、テストとデバッグのためにVB6IDEをWindows8x64にインストールすることもできました。
ただし、最初の問題は、一般的な50003エラーと、メインのアプリケーションフォームなどを作成できなかったというメッセージでした。さらなる調査により、Windows 8は、何らかの理由でフォームに埋め込まれたアイコンの一部を好まないことが明らかになりました(これらは、フォームに付随する.frxファイルに保存され、コンパイル時に.exeに埋め込まれます)。背景が透明なアイコンに関連している可能性があります。
アプリには約があります。影響を受ける100のフォーム。この問題が修正されると、アプリは正常に動作するようです。しかし、これはWindows 7(およびVistaとXP、およびすべてのサーバーバージョン、および古いバージョンは2000、Win98、およびWin95で実行された)で正常に実行される配布実行可能ファイルを壊します。簡単に修正できますが、何もしなくてもいいと思っていました。はぁ。
他の誰かがこれを見たり、ヒントや提案があれば興味があります。
PS @Hans Passant、Windows 7SP1ADOの問題はKB2640696で修正されています。
古いVB6プログラムを実行し続けることは、間違いなく難しくなっています。Windows 7 SP1は、古いVB6dbaseアプリの動作を停止するADOへの期限切れの更新に沿って展開されました。今年のMSCOMCTL.OCXには2つの重要なセキュリティパッチがあり、そのうちの1つがGUIDを変更しました。
これらの更新をスキップするだけで古いマシンで古いVB6アプリを実行し続けることができますが、Windows 8ではそれらが適切に配置され、元に戻すことはできません。新しいタイプライブラリを使用するように、これらの更新を使用してマシン上でアプリを再構築する必要があります。それがオプションでない場合は、仮想マシンがそれを継続する方法です。ただし、仮想XPモードのサポートはまだ表示されていません。