◀ANSI版開発トップへ
  • 4837 C++アウトライン
    • 4838 RE: C++アウトライン
      • 4847 Re2: C++アウトライン
        • 4848 Re3: C++アウトライン
          • 4849 Re4: C++アウトライン
  • [4837] C++アウトライン AC 2007年05月22日 20:08

    解析に失敗することがあります。
    多分COM系のソースで、ソース上
    [module ... (SERVICE:... ]
    のようか感じになっているときにmoduleだけが見えて
    それ以降が解析されませんでした。
    SERVICEのところがdllになっているソースは解析できましたし、
    SERVICEをdllに変更したら解析できましたので文字列の長さ
    でNGになっているようです。
    • [4838] RE: C++アウトライン げんた 2007年05月23日 00:04

      >[module ... (SERVICE:... ]
      これって,C++/CLIですか?

      サンプルコードがあれば解析可能かとは思います.
      • [4847] Re2: C++アウトライン AC 2007年05月24日 21:00

        [ module(SERVICE, uuid = "...",
        name = "...",
        helpstring = "...",
        ... )]
        class CXXX {
        ...

        という感じです。
        SERVICEのところがdllだとOKなんです。
        • [4848] Re3: C++アウトライン げんた 2007年05月24日 23:48

          MSDNでそれっぽいサンプルを見つけました.
          http://msdn2.microsoft.com/ja-jp/library/65t81w8a(VS.80).aspx
          試してみると...全然だめですね.

          属性を囲む[]が全く認識されていないので,[]の中のそれぞれが関数の始まりと誤解しています.

          []の中身を無視するようにすれば一応期待される動作になるかなと思いますので少々お待ちください.
          (C++の解析処理はちょっと入り組んでいるので...)
          • [4849] Re4: C++アウトライン げんた 2007年05月26日 08:00

            テストバイナリを作成しました.
            http://sakura.qp.land.to/?Junk%2F32

            属性の他に __interface キーワードへの対応と基底クラスであるテンプレートクラスでその実体化において__uuid()が使われているとそれを関数と誤認する問題の修正を含めています.

            Microsftのサンプルコードでいくつか試しましたが,うまく解析でないパターンがあるようでしたらまたお知らせください.