none
Windows95 で作動するアプリケーションを作成できる最後の VC++ のバージョンは? RRS feed

  • 質問

  • microsoft に問い合わせてみたのですが、古い情報なので判らない、と言われたので、こちらに投稿しました。VC++ アンマネージド (ネイティブ) でアプリケーションを作成したいのですが、幅広いプラットホームに対応させたく、Windows95 でも動くものにしたいと思っています。

    Windows NT 系と Windows 9x 系で UNICODE、ANSI バージョンの 2 つを作ることになると思いますが、Windows 95 で作動するアプリケーションを作成できる、最後の Visual C++ はどのバージョンでしょうか?
    2009年4月6日 9:23

回答

すべての返信

  • Visual Studio .NET 2003だと思います。

    Visual Studio 2005はWin95に対応していません 。以前、これを確かめてみたことがありますが、Win95上で実行しようとすると「新しいバージョンのWindowsが必要です」というようなダイアログが出て実行できなかったように記憶しています。リンカオプション/SUBSYSTEMで4.x系を指定してみましたが無視されました。
    # VS2008→Win98の検証だったかもしれません…どっちか忘れました。
    2009年4月6日 10:53
  • 佐祐理さん、回答ありがとうございます。

    Visual Studio .NET 2003 ですか・・・。

    古いので評価版はありませんねぇ。とは言え、Win98 が動く→Win95 も動く、とは断言出来ない様な気もしますし・・・。
    2009年4月6日 11:22
  • Visual Studio .NET 2003だと思います。
    さっと検索したところ、下記のような記述が見つかりました。
    http://msdn.microsoft.com/ja-jp/visualc/aa336423.aspx
    http://msdn.microsoft.com/ja-jp/visualc/cc707280.aspx

    それぞれ、コードの実行についてはWindows 98以降をサポートしている(=Windows 95は対象外?)との記載です。
    実態がどうなっているかまでは調べていません。

    解決した場合は、参考になった返信に「回答としてマーク」のボタンを利用して、回答に設定しましょう(複数に設定できます)。
    • 回答としてマーク ミッヒー 2009年4月7日 9:28
    2009年4月6日 13:11
    モデレータ
  • 古いので評価版はありませんねぇ。とは言え、Win98 が動く→Win95 も動く、とは断言出来ない様な気もしますし・・・。
    ところで、なぜ、Windows 95をターゲットとしているのでしょうか?
    既存のシステム上で動くアプリを追加で開発しなければならなくなったというような事情でしょうか?

    なお、Visual Studio.NET 2002以降であればMSDNサブスクライバダウンロードから入手可能ですが、Visual Studio 6.0の入手は現状不可能です。
    解決した場合は、参考になった返信に「回答としてマーク」のボタンを利用して、回答に設定しましょう(複数に設定できます)。
    2009年4月6日 13:24
    モデレータ
  • Azulean さん、いつもありがとうございます。

    ところで、なぜ、Windows 95をターゲットとしているのでしょうか?
    既存のシステム上で動くアプリを追加で開発しなければならなくなったというような事情でしょうか?
    仕事ではなく、趣味のプログラムで、3D レンダリングを行う機能も含む為、データを小分けにして、CD-R等で Win95 マシンでも動かそうかとも思っている為です。Win95 マシンはかなりの台数が出回っているので、まだある人は、そちらでも平行してレンダリングが出来ますよ、という機能もあったらいいなぁ、というある意味、時代を無視した事をやろうと思ったので。

    いずれにしても、Win95 をターゲットに入れるのであれば、VC++ 6.0 が最終バージョンの様ですね。

    http://msdn.microsoft.com/ja-jp/library/ms235435(VS.80).aspx

    によれば、Win98 以降は Visual Studio 2005 が最終バージョンになるようですね。
    ただ、WinNT 4.0 については触れてありませんねぇ。

    Win95 と同等って考えていいんでしょうか?
    2009年4月6日 13:59
  • そうなると、Windows 98 の最終バージョンは・・・。

    Breaking Changes
    http://msdn.microsoft.com/en-us/library/bb531344.aspx

    > This topic lists the breaking changes in Visual C++ 2008.
    > The Windows 95, Windows 98, Windows ME, and Windows NT platforms are no longer supported.
    > These operating systems have been removed from the list of targeted platforms.

    ということなので、Visual C++ 2005がWindows 98をサポートする最終と言うことになります。

    http://msdn.microsoft.com/en-us/library/ms235435(VS.80).aspx
    http://msdn.microsoft.com/en-us/library/ms235435.aspx


    解決した場合は、参考になった返信に「回答としてマーク」のボタンを利用して、回答に設定しましょう(複数に設定できます)。
    • 回答としてマーク ミッヒー 2009年4月7日 9:28
    2009年4月6日 14:46
    モデレータ
  • ということなので、Visual C++ 2005がWindows 98をサポートする最終と言うことになります。
    佐祐理さん、Azulean さん、ありがとうございます。
    お二人の回答を見て、今度は Windows NT 4.0 をサポートする最終バージョンを調べているのですが・・・。

    Windows NT 4.0 の最終サポートはどれでしょうか?

    Windows 2000 としか記載が無いような・・・。
    2009年4月6日 15:19
  • Windows NT 4.0 の最終サポートはどれでしょうか?

    改めて問います。
    なぜ、それが必要なのでしょうか?
    Win95を利用するという前提であれば、Win98やWinNT4.0に対応する最終バージョンを知る必要はないですよね?

    いずれにしても、Win95/98/NT4.0はサポートが終了しています。
    何かOS側の問題があったとしてもサポートは受けられませんし、もし、ネットワークに接続することを考えると、セキュリティ上の問題も無視できません。
    基本的にはこれらの古いOSを使ったプランは避けた方が無難です。
    解決した場合は、参考になった返信に「回答としてマーク」のボタンを利用して、回答に設定しましょう(複数に設定できます)。
    2009年4月6日 22:40
    モデレータ
  • Azulean さん、また言葉足らずで失礼しました。

    Win95/98/NT4.0 はスタンドアロンで動かす事を想定しています。

    WindowsXP 等でアプリケーションを配布し、3D レンダリング用にデータを作成し、まだ Win95/98/NT4.0 を処分せずにもっている場合、そちらでも時間のかかるレンダリングの処理を一部代行させて、最終的に WinXP 等に処理済データを統合させるつもりでいます。サポートが終了していても、スタンドアロンで動かす場合なら、セキュリティ上の問題は発生しにくいでしょうし、3D レンダリング用のメッシュを作成するなら、そこそこ性能のいい 3D ボードを搭載した過去の Windows でも多人数で平行して作業が行えると考えています。

    もちろん、データの転送時にウィルスが混入する事はありえますが、ネットワークに接続した PC でのウィルスチェックを行えば、サポートが終了した OS の感染、またはデータの破壊などは最小限に食い止められると考えました。

    システム全体の構成としては、ネットワークに接続した PC 一台と、スタンドアロンの PC 複数で、大きなデータを作成する、という感じになります。私の周りには、未だに PC を持っていない人がいるので、使わなくなった PC を提供し、スタンドアロンでデータ作成に協力してもらおうかと考えています。
    2009年4月7日 4:23
  • FAQなのに答えが「コードの実行については、Windows 98 以降の上位オペレーティング システムでサポートされる予定です 」というのも変な話ですね。
    またサポートを意識する場合、Visual Studio .NET 2002 / 2003本体のサポートが終了していますのであまり意味がないですよね。

    その上で、/SUBSYSTEMオプション によるとデフォルトでも4.0(NT 4.0/Win95)、指定によっては3.1(NT 3.1/Win32s?)までいけるそうです。
    って、ここの値が動作OSを制御していますよね?

    実際の動作を試そうと思ったらWin95を持っていませんでした(汗
    ので、最初のコメントに書いたのはVS2008→Win98の確認だったようです。
    2009年4月7日 9:12
  • Win95まで視野に含める場合、CDドライブがなかったり、ネットワークカードがなかったりもしますよ?
    14年前のハードウェアスペックは期待しない方がいいと思います。
    それよりは今時のPCでGPGPU を使用した方がよっぽど性能がでるかと。
    2009年4月7日 9:21
  • 佐祐理さん、回答ありがとうございます。

    Visual Studio 2005 が Windows 98 をサポートする最後のバージョンだと判ったので、おそらく、Windows NT 4.0 も同じかと思います。

    ので、Visual Studio 2005 を入手する方向で動きたいと思います。

    佐祐理さん、Azulean さん、回答頂きありがとうございました。

    2009年4月7日 9:27
  • 佐祐理さん、回答ありがとうございます。

    買い替えなどで不要になった PC を、PC の持っていない人に使ってもらう、という事も考えているので、ハードウェアのスペックはそこそこあればいいと思っています。3D ポリゴンの作成などはある種の才能が必要だとも思いますので、多くの人に使ってもらいたいのが実情です。

    2009年4月7日 10:19
  • もちろん、データの転送時にウィルスが混入する事はありえますが、ネットワークに接続した PC でのウィルスチェックを行えば、サポートが終了した OS の感染、またはデータの破壊などは最小限に食い止められると考えました。

    混入するのがウィルスだけなら、それでも良いかもしれませんね。

    ネットワークにつないでいること自体がすでに危険だという認識は、ないのですね。Windows 2000 だったか XP だったかのアルファより前の段階で、グローバルなネットワークにつないで20分ほどで攻撃を受けたという話を読んだことがあります。堅牢性についての説明だったから、Server 2003 だったかも。とにかく、古い Windows は、全てのサービスがデフォルトで使える状態なので、そういう攻撃にとても弱いです。既知のサービスの脆弱性を狙って侵入させることもできます。この場合、他の新しい OS では、攻撃を検知できない事があります。


    Jitta@わんくま同盟
    2009年4月7日 12:42
  • またサポートを意識する場合、Visual Studio .NET 2002 / 2003本体のサポートが終了していますのであまり意味がないですよね。
    Visual Studio.NET 2002/2003共にメインストリームのサポートは終了していますが、現在は延長サポートが有効です。
    但し、2002の方の延長サポートは2009/07/14で終了するので、もうすぐですけれども…。

    http://support.microsoft.com/lifecycle/search/default.aspx?sort=PN&alpha=Visual+Studio+.NET&Filter=FilterNO
    その上で、/SUBSYSTEMオプション によるとデフォルトでも4.0(NT 4.0/Win95)、指定によっては3.1(NT 3.1/Win32s?)までいけるそうです。
    って、ここの値が動作OSを制御していますよね?
    本当にそれだけでいくかどうかは分かりません。
    例えば、ランタイムの内部実装として古いWindowsで搭載されていないAPIを利用している可能性は否定できません。
    解決した場合は、参考になった返信に「回答としてマーク」のボタンを利用して、回答に設定しましょう(複数に設定できます)。
    2009年4月7日 13:41
    モデレータ
  • Visual Studio 2005 が Windows 98 をサポートする最後のバージョンだと判ったので、おそらく、Windows NT 4.0 も同じかと思います。
    それを断定できる根拠があるのでしょうか?
    Windows NT 4.0はWindows 98よりも前に発売されているので、Windows 98をサポートしていて、Windows NT 4.0をサポートしていない可能性は残ると思いますが…。

    Windows NT 4.0の表記がない時点で、期待はできないと思います。
    ターゲットとして意識しているかどうかを明確に肯定/否定するドキュメントは探せていません。
    http://msdn.microsoft.com/ja-jp/library/ms235435(VS.80).aspx
    解決した場合は、参考になった返信に「回答としてマーク」のボタンを利用して、回答に設定しましょう(複数に設定できます)。
    2009年4月7日 13:53
    モデレータ
  • システム全体の構成としては、ネットワークに接続した PC 一台と、スタンドアロンの PC 複数で、大きなデータを作成する、という感じになります。私の周りには、未だに PC を持っていない人がいるので、使わなくなった PC を提供し、スタンドアロンでデータ作成に協力してもらおうかと考えています。
    「スタンドアロンのPC」というのは物理的に離れた位置にある等、「ネットワークに接続したPC」とも何らの接続されていないということでしょうか?
    正直なところ、メリットがあるとは思えていません。逆に、デメリットが大きいのではないかと思っています。

    考えられるデメリット
    ・データ作成のリクエスト、結果のデータの回収にかかるコスト、ロスが大きい。(物理的なメディア経由?)
    ・Win95、WinNT4.0、Win98、WinXPを考慮しなければならず、開発コストが大きい。
    ・古いOSをネットワークに接続するようなことがあれば、セキュリティ面のリスクが高い。
    ・第三者に譲渡/貸与するとして、環境を立ち上げるまでの労力がかかる。
    ・譲渡/貸与を受けた人のメリットがない?


    ところで、「PCを持っていない人」に渡すメリットって何かあるんでしょうか?
    サービスの主催者が電気代を他人に負担してもらうぐらいしか見えないのですが…。

    データ作成専用だとすれば、「PCを持っていない人」には何もメリットがありません。
    (作成されたデータによって恩恵を受ける、例えば、みんなで開発しているゲームの売り上げの分配に与れる等であれば別です)
    目的外利用を認めたとして、「PCを持っていない人」が十分な知識を持たずにインターネットに接続するようなことがあれば、踏み台等に悪用され、犯罪に加担するハメになるかもしれません。

    解決した場合は、参考になった返信に「回答としてマーク」のボタンを利用して、回答に設定しましょう(複数に設定できます)。
    2009年4月7日 14:21
    モデレータ
  • ネットワークに接続する PC には Norton 等のワクチンソフトをインストールし、他の PC は全くネットワークに繋がない予定です。もちろん、LAN 環境も提供しません。しいて言うなら、同じ部屋にパソコンが数台ある、というだけの話です。その上で、ネットワークに接続したパソコンから移動するデーにはウィルスチェックを行い、戻ってきたデータにもウィルスチェックをする予定です。その際、ウィルスに感染していれば、そのパソコンは再インストールなどの処置を講じる予定です。
    2009年4月7日 15:23
  • Azulean さんの言われるとおり、デメリットに対する認識が甘かったようです。

    スタンドアロンの PC とはネットワークにも、LAN にも繋がっていない、単体の PC の意味でした。

    ただ、PC を持っていない友人がおり、その友人にデータ作成に関わってもらいたいという考えがあったもので。
    もちろん、友人には古い OS である事、またその PC でネットワークには接続しないよう要請するつもりです。とは言え、まったく PC がない状態なので、作成したアプリケーションを見てもらう事も難しく、それなら友人の家に PC を設置し、CD-R 等でアプリケーションをインストールしようと思っています。

    皆さんのご指摘で、デメリットに関する意識が甘かった事を痛感しました。

    皆さんに教えていただいた危険性を伝えます。

    Windows NT 4.0 をサポートする最後の開発環境については、Visual Studio 6.0 か、Visual Studio 2005 の対応する方で作成することにします。

    Win95、98、Me、WinNT 4.0 に関しては趣味と勉強を兼ねてプログラムしたいと思います。
    2009年4月7日 15:36
  • しいて言うなら、同じ部屋にパソコンが数台ある、というだけの話です。
    ご自身で、同じ部屋で管理し、ネットワークに繋がないというのであれば、確かに脅威は下がりますし、自己責任の範囲で運用可能でしょう。
    しかし、ご自身の目が届く範囲から外れる、「PCを持っていない人」に委譲するとなると話は変わります。

    データをやりとりするのが他のPCはあり得ないと保証できるのでしょうか?
    ウィルス感染が発覚するまでの間に、他の所とデータをやりとりする可能性があれば、被害は拡大するかもしれません。
    そのパソコンの運用者がある程度、知識を持っていないと、思いもよらぬ使われ方をするかもしれません。

    そのほか、Win95/98は長時間稼働の観点では、安定しないと記憶しています。
    データ作成で走らせっぱなしは厳しいのではないかなという風にも感じます。
    解決した場合は、参考になった返信に「回答としてマーク」のボタンを利用して、回答に設定しましょう(複数に設定できます)。
    2009年4月7日 15:37
    モデレータ
  • Azulean さん、いつもありがとうございます。

    友人は自分でも認めるほどの初心者ですので、ネットワークに接続する際には、プロバイダを何処にするか、等の相談があるとは思いますが、その場合、危険性を伝えて、委譲した PC を回収する事になると思います。

    ただ、Azulean さんの言われるとおり、

    データをやりとりするのが他のPCはあり得ないと保証できるのでしょうか?

    は完全には否定できない話ですね。

    よって、友人に委譲する PC はサポート中の OS を搭載したものに限定し、皆さんに教えて頂いた危険性をしっかりと伝え、ウィルス対策を半ば強制的に行わせます。そして、Win95/98/Me、WinNT 4.0 は趣味と勉強を兼ねたものだけに留める事にします。

    佐祐理さん、Azulean さん、Jitta さん、ご教授ありがとうございました。
    改めて、ネットワークに繋ぐ危険性が再確認出来ました。

    また何かありましたら、よろしくお願いします。
    2009年4月7日 15:52
  • 今更、と思われるかも知れませんが、一応気になったので書き込みしました。

    Windows NT 4.0 をサポートする最後の Visual C++ のバージョンですが、Azulean さんの回答に、Windows NT と記述がありますよね。
    Breaking Changes
    http://msdn.microsoft.com/en-us/library/bb531344.aspx

    > This topic lists the breaking changes in Visual C++ 2008.
    > The Windows 95, Windows 98, Windows ME, and Windows NT platforms are no longer supported.
    > These operating systems have been removed from the list of targeted platforms.

    ということなので、Visual C++ 2005がWindows 98をサポートする最終と言うことになります。

    http://msdn.microsoft.com/en-us/library/ms235435(VS.80).aspx
    http://msdn.microsoft.com/en-us/library/ms235435.aspx
    Windows 2000 が Windows NT 5.0 で Windows XP が Windows NT 5.1 のはずですから、ここでいう Windows NT とは、Windows NT 4.0 以前のものを指すのではないかと思います。

    違うかも知れませんが、一応、ご報告までに・・・。
    2009年6月20日 15:51