◀ANSI版開発トップへ
  • 5015 VC6のこと
    • 5017 Re:VC6のこと
    • 5018 Re:VC6のこと
      • 5019 Re2:VC6のこと
        • 5025 Re3:VC6のこと
    • 5020 Re:VC6のこと
      • 5021 Re2:VC6のこと
        • 5028 Re3:VC6のこと
          • 5039 Re4:VC6のこと
          • 5250 Re4:VC6のこと
    • 5023 Re:VC6のこと
    • 5027 Re:VC6のこと
      • 5029 Re2:Win95のこと
    • 5036 Re:VC6のこと
  • [5015] VC6のこと げんた 2007年09月14日 01:07

    UNICODEの話からVisual C++ 6.0の話が出たので,独立させてみました.

    以下個人的な意見です.
    Windows 95をサポートしているのはVC6のみ:
    →それともこれはコンパイラ自身のプラットフォームの話でしょうか.そこが曖昧でよくわかりませんでした.
    実質的にWindows 95でも動作するならVC6にこだわらなくて良いと思う.(開発環境としてWindow 98以前を使っている人はさすがにいないのでは?)

    Visual C++ 2005 Express Editionが入手可能な今,それ以前のバージョンにこだわる理由
    →素のVisual C++ 2005で作るとWindows 95で動作しないファイルになる (patches:1601496で回避できる).VC2005が生成するEXEが妙に大きい気がする.しかし,これもVS 2003と比べての話.

    VC6をサポート外にするならsakura.dsp/sakura.dswは?
    →VC6以降のVisualStudioで開ける形式としてこのままにしたいけど,VC6でコンパイルできないのは変ですよねぇ.何か代わりの形式があればそちらで.

    現在もVC6でのコンパイルはリリース版作成においても行っていません.BCCのことも忘れてます.
    でもリソースファイルはVC6の出力を崩さないように手で編集してます.

    ---

    VC6でコンパイルできるようにソースを修正することは可能かもしれませんが,VC6を持っていなければコンパイルエラーになるかどうか確認しようがありません.むしろ古い物は切り捨てた方が親切なのかな.「コンパイルにはVisual C++ 2005が必須」と言い切ってしまって困る人ってどのくらいいるのでしょうか.
    • [5017] Re:VC6のこと K.Takata 2007年09月14日 01:40

      ▼ げんたさん
      > 「コンパイルにはVisual C++ 2005が必須」

      最新の1つ前であるVS2003を切り捨てるのはまだまだ早いのではないかと個人的には思います。
      さすがに3つも前のVC6はもうそろそろいいのではないかと思いますが。
      # もっとも、私自身は未だにVC6をメインで使っていますが。


      > VC2005が生成するEXEが妙に大きい気がする.

      2005からはシングルスレッドライブラリがなくなって、マルチスレッドのみになってしまいましたが、その関係でしょうか。
    • [5018] Re:VC6のこと ラスティブ 2007年09月14日 09:16

      ちょっと話が脇道にそれるかもしれませんが、
      下に話の発端となったネタとその補足説明を、
      整理して抜粋させて頂きます。m(__)m
      事後報告になるなのでちょっと後ろめたいですが。。。

      原文は下記のページに掲載されています。
      http://sourceforge.net/tracker/index.php?func=detail&aid=1788045&group_id=12488&atid=312488

      -----------
      一般掲示板なりで合意形成に近いことはしないと
      さすがに変えられるレベルの問題ではないだろう
      という懸念がある。また、サクラでは私を含め
      ユーザーとの議論が少ないなどの関係で、
      まともな合意形成がとれたことはほとんどない。
      これらのことを踏まえると、サポートを切るより
      コードを妥協したほうが現実的な路線ではと、
      個人的に感じている。ただ、今のうちに切れるものを
      切ったほうが今後楽になるので、なんとかして
      切ってしまうのも勿論良いとは思う。

      もか
      -----------

      Win95 上の開発においては、VC6 が主役だ
      ということが前提となっている話だというように
      見えますけれども・・・。
      外していたら申し訳ないです。
      • [5019] Re2:VC6のこと ラスティブ 2007年09月14日 21:29

        どこでつまずいちゃってるか、
        レポートさせて頂きたいと思います:

        ・メッセージの強度差があるものの、開発者は
        「VC6 サポート外してもいい時期だよね」の方向で
        ほぼ致している。。。

        ・VC6 のサポートは Win95 プラットフォーム上で
        走らせるべく書かれたソースコードの保守・開発の
        主要コンパイラとして位置づけられている…?
        VC6 をサポートしない方向で進めるのであれば、
        ユーザーとの合意形成は絶望的だから仕方ないにしても、
        最低でも事前に 「Win95 のサポートが事実上切られることに
        なりましたごめんなさい。」みたいな意向だけは
        周知される必要がある。

        ・ふと Project Home を見ると、Win95 から Vista までの
        サポートを気前よく謳っている。なんか名残惜しい・・・。

        ▼ げんたさん
        > むしろ古い物は切り捨てた方が親切なのかな.
        > 「コンパイルにはVisual C++ 2005が必須」と
        > 言い切ってしまって困る人ってどのくらいいるのでしょうか.

        ちょっとわかりません orz.

        ▼ kobake さん
        >  UNICODE化以降は
        > VC6を切り捨てる=Win9xを切り捨てる=ANSIビルドを切り捨てる
        > という意味に取れてしまったのですが、
        > どこか間違っていますでしょうか。

        ANSI 版と UNICODE 版とを
        1つのソースからコンパイル出来るようにするのが目的です。
        ANSI 版は Win95 からサポート、
        UNICODE 版は ・・・あれ、いつからかちょっとよく
        調べてないのですが、少なくとも Win95 は外されると思います。
        ここで、ソースコードは Win95 プラットフォーム上でも保守され
        得るので、コードは自ずと Win95 上の主役、
        VC6 でコンパイルできる必要があります。
        (ここまではもかさんが指摘された趣旨だという認識です…)
        けれど VC6 は C++ ならぬ "C+" 言語を搭載してるのか、
        あまり賢くないみたいで、
        kobake さんも げんたさんも もかさんも仰っていますように、
        (ryoji さんも行動でもって暗に伝えている
        可能性がありますが… (^^; )将来的に見て
        ここまで執着する必要あるの?みたいな感じで
        つまずいてます。

        他の皆さんの意見が皆無で独裁的になりがちなのも、
        すっぱり言い切れない理由の一つでして。。。
        ちなみに自分は、お察しの通り、
        すっぱり切りたい派に属しています。

        自分の裁量では判断しかねます。
        秀丸とかはちゃんと Win95 でも動くようですが、
        あれはクローズドソースですから。。。
        その辺は融通が着くのかなと思ったり。

        そんなところです。
        • [5025] Re3:VC6のこと kobake 2007年09月15日 00:47

          ▼ ラスティブさん
          > ・VC6 のサポートは Win95 プラットフォーム上で
          > 走らせるべく書かれたソースコードの保守・開発の
          > 主要コンパイラとして位置づけられている…?
          > VC6 をサポートしない方向で進めるのであれば、
          > ユーザーとの合意形成は絶望的だから仕方ないにしても、
          > 最低でも事前に 「Win95 のサポートが事実上切られることに
          > なりましたごめんなさい。」みたいな意向だけは
          > 周知される必要がある。

          「サポート」とは、たとえば
          Win95でのみ発生するバグが見つかった場合に、
          「それを迅速に修正できる体制」のようなものでしょうか。
          たしかに、VC6でコンパイルできなければ、
          Win95固有のバグ修正は手間がかかりそうです。

          ただ、(自分は今まで勘違いしていたのですが)
          げんたさんが書かれているとおり、VC2005でもWin95でも動くものはできるようなので、
          わりと動くものができるんじゃないか、と楽観的に思ったりするのです、、
          が、知識の裏づけはまったくないです(汗)。


          また、これは、あまり前向きでない意見なのですが、
          Win95ユーザが少ないであろう現状では、
          ユーザレポートが多ければ働くはずのバグの淘汰の原理が
          既に働かなくなっている、「かもしれない」、ことを考えると
          VC6を切ってしまっても、Win95への対応品質にはそれほど変化がない、
          「かもしれない」という考えが頭をよぎります。


          > ・ふと Project Home を見ると、Win95 から Vista までの
          > サポートを気前よく謳っている。なんか名残惜しい・・・。

          たしかに、この文句が無くなるのは名残惜しいです。。。
    • [5020] Re:VC6のこと AC(その1) 2007年09月14日 21:50

      >コンパイルにはVisual C++ 2005が必須
      2003は捨てないで;;

      >何か代わりの形式
      つ「Makefile.vc6」
      #メ、メイクファイルだって使えるんだからねっ!

      VC6使ってますが、GUIで画面修正できるからなので
      画面修正できるフリーのソフトあるならVC6は捨て
      てもいい
      #コンパイラ買い換えるお金はないっすorz

      #defineが足りないというレベルなら
      compatibleヘッダでも作ってVC6使う人が追っかけ
      で修正すればいいのではないかと思います。
      • [5021] Re2:VC6のこと げんた 2007年09月14日 23:32

        >>コンパイルにはVisual C++ 2005が必須
        >2003は捨てないで;;
        いや,VC 2005 Express Editionが無料だから...

        でも,普段2003以前を使っている人は,これだけのためにVC2005を入れたくないというのも理解できます.
        関連づけをとられてしまうので.(Express EditionだとMFCが無くてリソース編集ができない)

        >VC6使ってますが、GUIで画面修正できるからなので
        そうでした.Express Editionの泣き所.
        ということはプロジェクトファイルをVC6で読み込める点は変えるべきではないでしょうね.

        >>何か代わりの形式
        >つ「Makefile.vc6」
        >#メ、メイクファイルだって使えるんだからねっ!
        makefileだと
        >GUIで画面修正
        には使えないのではないかと...

        >#defineが足りないというレベルなら
        >compatibleヘッダでも作ってVC6使う人が追っかけ
        >で修正すればいいのではないかと思います。
        テンプレートが炸裂して,どう直したらコンパイルに通るのか素人にはわからないレベルになることを危惧しております.

        VC6で使えないテンプレートとその回避策一覧がまとまった物があれば良いのですけど...

        それ以外にも(現在は使っていませんが)現在の関数名を表す定数__FUNCTION__ (?)が使えるとか.
        (使うとしてもdebug用なので,VC6の時はダミーの定義を入れておけば良いか)
        • [5028] Re3:VC6のこと AC(その1の2) 2007年09月15日 09:13

          個人的意見>発言少ないと開発の方も判断つかないので、一意見として。
          VC6やWin95が原因で開発(特にUNICODE対応)が滞るなら切り捨てたほうがいい。
          ANSI版は凍結(バグFIXのみor有志出現期待放置)で
          UNICODE版ではVC6&WIN95切り捨てるとか。

          Express Editionは編集できないんですよね;;
          嘆いてばかりしていてもしかたないので調べてみました。

          フリーのリソースエディタ
          ・XN Resource Editor
          http://www.wilsonc.demon.co.uk/d10resourceeditor.htm
          ・BCCForm and BCCSkelton
          http://www.vector.co.jp/soft/win95/prog/se226181.html

          試しましたがどちらも読み込めない。
          ヘッダファイルとか細工すればいけるんだろうか・・・

          __FUNCTION__ は現在の関数名文字列ですね。
          VS2003で使ってますが、ないならないで問題ないない。

          テンプレート一覧は...見つかりませんでした。
          • [5039] Re4:VC6のこと AC(その1の2の3) 2007年09月15日 21:36

            XN Resource Editor

            #必要なファイルはすべて作業用フォルダにコピーして行う。

            1.windows.hを次の内容で作る。このとき4ファイルの中に
            #elifの記述があったら#else,#if,#endifに展開しておく。

            #include "commctrl.rh"
            #include "dde.rh"
            #include "winnt.rh"
            #include "winuser.rh"

            2.次の4ファイルの\5cを持つ全角文字を消すか
            能\のようにする。特に行末の\5cに注意。
            すべてコメント中にあるのでとりあえず削除でよい。

            funccode.h
            sakura_rc.h
            sakura_rc.hm
            sakura.hh

            3.リソースの\5cを別の文字に変換する。
            (ソ、能、表、貼、―)
            \077は使えるが\x??や能\は使えないので、
            元に戻せるよう識別可能なユニークな文字列に変換する。

            sakura_rc.rc

            4.XNで読み込む。


            まぁ、3が致命的かな。
            ソースがPascalなんでわからんよ。
          • [5250] Re4:VC6のこと ac 2008年03月12日 21:26

            > フリーのリソースエディタ
            http://www.resedit.net/
            http://www.forest.impress.co.jp/article/2008/03/12/resedit.html
    • [5023] Re:VC6のこと kobake 2007年09月15日 00:20

      ▼ げんたさん
      > Visual C++ 2005 Express Editionが入手可能な今,それ以前のバージョンにこだわる理由
      > →素のVisual C++ 2005で作るとWindows 95で動作しないファイルになる (patches:1601496で回避できる).

      VC2005でもWin95で動くプログラムは作れるのですね。知りませんでした。
      そうなると、自分も、個人的にはVC6を切りたい派です。

      VC2003を捨てるか捨てないかの話に関しては、
      VC2003を捨てないことによる、作業効率の低下はあまり感じないので、
      残しても良いのではないかな、、という意見です。

      ちなみに、自分が感じた、VC2003とVC2005の違いは、
      strcpy_s のような 「~_s」の付く関数が有るか無いか、くらいでした。コンパイル機能の差は感じませんでした。
      VC2003の使用期間があまり長くないので、気づいていない差もたくさんあると思いますが。
    • [5027] Re:VC6のこと ラスティブ 2007年09月15日 06:06

      ▼ kobake さん
      > 「サポート」とは、たとえば
      > Win95でのみ発生するバグが見つかった場合に、
      > 「それを迅速に修正できる体制」のようなものでしょうか。
      > たしかに、VC6でコンパイルできなければ、
      > Win95固有のバグ修正は手間がかかりそうです。

      そういうことだと思いますたぶんきっと。。。(←代弁モード)
      もかさんの Patches #1788045 でのコメント:
      > VC6以外ではBCCでないとWin95が動作保障範囲外なので
      > 捨てにくいんですけど、どうしましょう?

      自分はコンパイラ周りの事情をあまり感知せずやっているので、
      詳しいことがよく分からないのですけれど、
      Win95 (ANSI コンパイル) 上で一応裏技的な手法で
      動作するようにはしてるけどきちんとした対応は
      もうできなくなったよーというようなことをもって、
      事実上の Win95 サポートの切り捨てだと自分も思います。

      ひょっとして自分だけだいぶ外してたりして、
      イタイ状態に陥ってるかもしれませんが orz.
      それは置いておきましても、

      ▼ げんたさん
      > > Win95 サポートのため、VC6 でのコンパイルを保障する
      > これは,Windows 95で動作するという意味?
      > それともWindows 95でコンパイルできるという意味?
      >
      > 前者なら現在も(VC6じゃないけど)できます.
      > 後者は...必要あるの?

      ▼ kobake さん
      > VC2005でもWin95で動くプログラムは作れるのですね。
      > 知りませんでした。
      > そうなると、自分も、個人的にはVC6を切りたい派です。

      自分も含めてこういう動きが圧倒的に優勢だというのは、
      紛れもない事実・・・ですよね。

      Unicode 化の際のコンパイルに関わる大まかな方針としては、
      VC6 切り捨ての流れになりそうですけれど・・・

      みなさま了解?

      # いつもどおりご都合主義的な結論ですが…。
      • [5029] Re2:Win95のこと げんた 2007年09月15日 09:38

        コンパイラとは関係ないですが念のために申し上げておくと,Windows 95対策コードというのがコード中にいくつかあります.

        自分の覚えている範囲では,
        * メニューのコマンド値が16bit (32767以下)でないとメニューが出ない
        * 構造体サイズとしてWindows 95が期待する値以外の値を入れるとエラーになる.(新しいOS/SDKでは拡張されているので,sizeofを使わずに固定値にしている.64bit版では不適切な値となるので,条件コンパイルにしている.)
    • [5036] Re:VC6のこと ラスティブ 2007年09月15日 12:58

      ▼ げんたさん
      > コンパイラとは関係ないですが念のために申し上げておくと,
      > Windows 95対策コードというのがコード中にいくつかあります.

      Windows 95対策コードは従来どおり残すけれど、
      VC6 の言語仕様の面でヘッポコな部分については、
      もうさじ投げましたってことですよね。
      ユーザー側へのメッセージとしては、
      「Win95 プラットフォームにおかれましては、
       配布されたソースコードの VC6 でのコンパイルが
       保障できなくなります。」
      ということですね。

      それでは Unicode 化の指針の一つとして、
      どさくさに紛れて承諾されたことにします。


      ▼ AC(その1の2) さん
      > ANSI版は凍結(バグFIXのみor有志出現期待放置)で
      > UNICODE版ではVC6&WIN95切り捨てるとか。

      将来的には、だいたいそういう流れ・・・になると思います。
      時勢を考えても当たる確率は比較的高いと予想されます。

      (いつの間にか時事レポートやっちゃってます)

      ただ、その割には実質的な行動が伴ってないとは
      自覚しているので、実は、旗振り役(というのか)を
      kobake さんへバトンタッチ中なのですけれど。。。

      よろしいですか? >げんたさん

      # どうも掲示板全体の流れを見ると、
      # 自分の不手際で話が前後しちゃってるようです。。。