◀Unicode版開発トップへ
  • 1047 WSHプラグイン
    • 1097 Re:WSHプラグイン
      • 1109 Re2:WSHプラグイン
        • 1110 Re3:WSHプラグイン
          • 1111 Re4:WSHプラグイン
            • 1112 Re5:WSHプラグイン
              • 1113 Re6:WSHプラグイン
                • 1114 Re7:WSHプラグイン
                  • 1115 Re8:WSHプラグイン
                    • 1116 Re9:WSHプラグイン
  • [1047] WSHプラグイン syat 2009年10月31日 12:13

    WSHマクロでアウトライン解析を書けるようにするパッチを作りました。
    と書きましたが、実際のところもっと汎用的なプラグイン機能の土台にしたくて作っています。
    しばらくパッチのまま放置するので、アイディア・感想・要望などあればコメントください。
    PatchUnicode:2889809
    • [1097] Re:WSHプラグイン syat 2010年01月09日 22:04

      テストバイナリをWikiに載せてみました。
      http://sakura.qp.land.to/?Junk%2F48
      当初やりたかったことはだいたい実装したので、大きな問題がなければこれでコミットしたいと思っています。

      今後は、
      ・仕様のドキュメント整備
      ・汎用的に使えるアウトライン解析ビュー(RubyアウトラインはJavaのアウトライン解析を強引に流用してるので…)
      ・共通設定、タイプ別設定の取得/変更関数を実装
      ・プラグインによるジャック・IFオブジェクトの追加
      なんかをやっていきたいです。
      • [1109] Re2:WSHプラグイン syat 2010年02月14日 17:04

        リビジョン1715でコミットしました。
        • [1110] Re3:WSHプラグイン ryoji 2010年02月14日 19:46

          ▼ syatさん
          > リビジョン1715でコミットしました。

          手元の環境ではビルドできませんでした。
          ビルドエラーのログをwikiに置いておきます。
          http://sakura.qp.land.to/?Develop%2F12

          環境:
          Windows 7
          VS2005(SP1) Team Edition for Software Developers
          • [1111] Re4:WSHプラグイン syat 2010年02月14日 22:28

            ▼ ryojiさん
            ご報告ありがとうございます。
            とり急ぎUnicodeビルドのエラーを見て、修正パッチを作ってみました。(wiki同ページのplugin_unicode_mod_1.patch)
            私の環境(XP、VC2008 Express Edition)ではどちらのエラーも出ないので、これで直るか確かめられません。
            8個出ている方はconst_castすれば良さそうですが、2個のほうは全くわかりません。が、ループ中にリスト要素を追加/削除するのは危なそうだったので直しました。
            このパッチで改善するか確認してもらえますか?
            • [1112] Re5:WSHプラグイン syat 2010年02月14日 23:20

              ANSIビルドのエラーも修正しました。(plugin_unicode_mod_2.patch)
              バグってますなぁw
              wsprintf→swprintfとか
              • [1113] Re6:WSHプラグイン ryoji 2010年02月17日 23:41

                ▼ syatさん
                > ANSIビルドのエラーも修正しました。(plugin_unicode_mod_2.patch)
                ビルド確認してみました。
                各構成とも、同一箇所でエラーが2個残ってます。
                wikiにログを置いておきました。
                • [1114] Re7:WSHプラグイン syat 2010年02月18日 22:58

                  ▼ ryojiさん
                  ありがとうございます。前回の修正でよくわからなかった部分が残っていますね。
                  その後調べてやっとエラーの内容がわかりました。修正パッチを置きました plugin_unicode_mod_3.patch

                  解説すると、vectorは要素の追加・削除をするとメモリを確保しなおす場合がある。するとイテレータの指す所が無効になるため、ここで使うべきではない、とコンパイラが怒っている。
                  begin()、end()もイテレータだけど、これは毎回関数呼び出しするので、メモリ位置が変わっても問題ない。添え字アクセスでも可。
                  考えれば納得できますが、もう少しエラーがわかりやすくならないものでしょうか…。そしてVC2008では何故そのエラーが出ないのか??

                  CPlug::Listという名前なのに実体はvector、というのが誤解を招くといけないので、ついでにCPlug::Arrayに変えておきました。
                  • [1115] Re8:WSHプラグイン ryoji 2010年02月20日 00:32

                    ▼ syatさん
                    > plugin_unicode_mod_3.patch
                    ↑これで全構成でコンパイル通りました。(^o^)v
                    • [1116] Re9:WSHプラグイン syat 2010年02月20日 09:32

                      どうもです。rev1716でコミットしておきました。