17

Visual Studio 2005 から Visual Studio 2008 へのアップグレードを検討しています。次の不穏なコメントを発見しました。

http://msdn.microsoft.com/en-us/library/6sehtctf.aspx

「Visual C++ 2008 以降、Visual C++ は Windows 95、Windows 98、Windows ME、または Windows NT のターゲットをサポートしていません。」

これは、ビジュアル C++ 2008 で製品を再構築すると、Windows 98 マシンで動作しなくなるということですか? そのように聞こえますが、彼らがそれほど大きな変化をもたらすとは信じがたいです.

ご協力いただきありがとうございます。

4

8 に答える 8

15

.NET 3.5 だけの問題ではありません。これは、WINVER の必須バージョン バンプによって取り込まれた Windows SDK ヘッダー ファイルのマクロと定義に関するものです。そうです、コーレン、Visual C++ 2008 バイナリは Windows NT API のみをターゲットにし、場合によっては 98 でも動作する可能性がありますが、Visual Studio 2008 を使用して Win9x をターゲットにすることはできないと想定する必要があります。VS2005 以前を使用する必要があります。

于 2008-10-17T20:30:19.167 に答える
3

はい、それは次のことを意味します: 2000 より前の Windows NT およびすべての Windows (95、98 および ME) 上の Windows CreateProcess および LoadLibrary API は、ファイルの PE ヘッダーに必要な OS があるため、VS9 によって作成された DLL または EXE ファイルをロードしません。 version フィールドが 5 に設定されています。

VS9 で生成された exe ファイルを読み込もうとしたときのエラー メッセージ (非常に不親切なモーダル エラー ダイアログ) は、実際には「このプログラムを実行するには、オペレーティング システムをアップグレードする必要があります」と表示されます。

フィールドを 4 に編集して実験しました。バイナリはロードされますが、VS9 c ランタイムを使用すると、プロセスがハングまたはクラッシュします。VS9 プロジェクトでネイティブの C ランタイムを使用しないようにする方法はありますが、C++ 機能を大量に使用することが重要な場合、このアプローチは小さなアプリケーションを超えて拡張することはできません。

VS8 / VS2005 は VS9 のほとんどの機能を備えていますが、まだ初期の OS バージョンをターゲットにしているため、私のショップでは今のところそれに固執しています。

于 2008-10-18T06:43:01.257 に答える
1

新しい製品で古いバージョンのオペレーティング システムをサポートしていないのは当然です。古いシステムの制限 (および多くの場合バグ) を処理するには、より多くのコストがかかります (金銭的なコストだけでなく、いくつかの新しい便利な機能を提供することが難しくまたは不可能になります)。これは常に、誰にでも起こります。新しいバージョンの gcc は、あまり人気のない古いアーキテクチャのサポートを削除しました。glibc の新しいリリースでは、最新の最小カーネル バージョンが必要です。等々。

これらのオペレーティング システムは長い間使用されていません。Microsoft の観点からは、誰もそれらを使用するべきではありません。それでも開発したい場合は、同じヴィンテージの古いツールを使用できます。

于 2008-10-17T20:45:18.870 に答える
0

次のリンクによると、windows 98 は .NET 3.5 でサポートされていないため、それが意味するものだと思います。.NET 2.0 以前の開発は引き続き行うことができますが、3.5 ライブラリを使用する場合、Windows 98 はサポートされません。

.NET 3.5 情報

于 2008-10-17T20:27:21.387 に答える
0

この時点では、3.5 Framework は Windows 2000 Server にもインストールされません。したがって、95、98、または NT のいずれかになるとは思えません。Microsoft は、これらの廃止されたオペレーティング システムをサポートする責任を負いたくありません。

于 2008-10-17T20:27:52.480 に答える
0

これを機会に、Windows 9x のサポートを停止することをお勧めします。これは、そうする正当な理由です。また、少なくとも Win32 API 用の C/C++ コードを作成している場合は、ターゲット OS が Windows 2000 以降であると想定できれば、作業ははるかに簡単になります。

于 2008-10-17T21:01:55.670 に答える
0

私は JesperE に同意しますが、Windows 98 は非常に少数のユーザーであるため、顧客の大部分が実際に Windows98 を使用していることを知っていない限り、それらをターゲットにすることはほとんど意味がありません。

いずれにしても、実際には Visual Studio 2008 で Windows 98 をターゲットにすることができます (Windows 98 で開発することはできません)。ただし、プロジェクトは .NET 2.0 のみをターゲットにする必要があります。3.0 または 3.5 の機能は使用できません。

于 2008-10-17T23:52:43.173 に答える