◀ANSI版開発トップへ
  • 4155 VariantChangeType対応
    • 4172 RE: VariantChangeType対応
      • 4187 Re2: CMacro::HandleFunction()について
  • [4155] VariantChangeType対応 FILE 2005年11月20日 20:07

     (>>dev:3926)で紹介させていただきました、VariantChangeType()を
    使用してみました。

     更新履歴(http://members.at.infoseek.co.jp/sakura_editor/bin_changelog.html)の
    「Win95系OSでWSHが一応うごくように.」から、「一応」を取り除く事が目標です。

     (>>macro:110)のようなキャスト(?)を行う必要が無くなり、VBScriptで書かれた
    マクロが増えると嬉しいです。

     差分ファイルは、以下のアドレスに(最低1ヶ月ぐらい)置いておきます。

    www001.upp.so-net.ne.jp/folder/Z6LQNzJu/051120-Sakura_Diff/ssrc_2005-11-06_VariantChangeType.diff

     この対応により、CMacro::HandleFunction()を大幅に変更してしまいました。
     処理内容はそのままに、慎重に書き換えましたので大丈夫かとは思いますが、
    ご確認いただけますでしょうか。

     Ver. 1.5.8.0(2005-11-06)をベースに変更し、
    Win95(+IE5.5), WinMe(+IE5.5), WinXP(+IE6)
    の環境で動作確認いたしました。
    • [4172] RE: VariantChangeType対応 げんた 2005年11月27日 11:54

      [CMacro::HandleFunction()について]

      case F_GETSELECTED: で判定の!が消えているようです.
      ---
      VariantClearを行うためにreturnを最後に持ってきていますが,
      VariantInitとVariantClearを行うクラスを設けた方が,途中でreturnしてしまうミスを防げると思います.

      class Varantなんとか {
      VARIANT varCopy
      public:
      VARINT& get() { return varCopy; }
      Variantなんとか() { VariantInit(&varCopy); }
      ~Variantなんとか() { VariantClear(&varCopy); }
      }
      • [4187] Re2: CMacro::HandleFunction()について FILE 2005年12月01日 00:17

        ご確認ありがとうございます。

        > case F_GETSELECTED: で判定の!が消えているようです.

        これは意図的な変更で、こちらの環境では正常に動作していました。

        > VariantClearを行うためにreturnを最後に持ってきていますが,
        > VariantInitとVariantClearを行うクラスを設けた方が,途中でreturnしてしまうミスを防げると思います.

        一瞬頭をよぎりましたが、この関数内だけの変更にしたかったのと、
        (C++の認識不足による)メモリリーク等が怖かったので、上記の仕様
        にしていました。

        > class Variantなんとか {
        > (中略)
        > }

        既にOleTypes.hにstruct Variantがありましたので、勉強のためにも
        これを使用して、修正してみました。(差分がかなり減りました)

        Ver.1.5.8.1(2005-11-27)をベースにした差分ファイルを、
        以下のアドレスに(最低1ヶ月ぐらい)置いておきます。

        www001.upp.so-net.ne.jp/folder/YMr2vU63/051130-Sakura_Diff/ssrc_2005-11-27_VariantChangeType.diff


        ・差分ファイルについてメモ

        差分ファイルをsakura_coreの一つ上のフォルダで作成する場合
        diff -ur --dos -u1 sakura_core_Org sakura_core > 差分ファイル.diff
        (-u1:差分少な目 / sakura_core_Org:変更前のフォルダのコピー)

        差分ファイルを作成したフォルダ(sakura_coreの一つ上)で実行する場合
        patch -p0 --dos < 差分ファイル.diff

        適用対象ファイルと同じフォルダ(sakura_core内)で実行する場合
        patch -p1 --dos < 差分ファイル.diff