2007/5/22 (火) 20:08:37 AC  
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30)
[4837] C++アウトライン
解析に失敗することがあります。
多分COM系のソースで、ソース上
[module ... (SERVICE:... ]
のようか感じになっているときにmoduleだけが見えて
それ以降が解析されませんでした。
SERVICEのところがdllになっているソースは解析できましたし、
SERVICEをdllに変更したら解析できましたので文字列の長さ
でNGになっているようです。

2007/5/23 (水) 00:04:42 げんた  
INCM1.23c
[4838] RE: C++アウトライン
>[module ... (SERVICE:... ]
これって,C++/CLIですか?

サンプルコードがあれば解析可能かとは思います.

2007/5/24 (木) 21:00:50 AC  
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30)
[4847] Re2: C++アウトライン
[ module(SERVICE, uuid = "...",
  name = "...",
  helpstring = "...",
  ... )]
class CXXX {
...

という感じです。
SERVICEのところがdllだとOKなんです。

2007/5/24 (木) 23:48:38 げんた  
INCM1.23c
[4848] Re3: C++アウトライン
MSDNでそれっぽいサンプルを見つけました.
http://msdn2.microsoft.com/ja-jp/library/65t81w8a(VS.80).aspx
試してみると...全然だめですね.

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

[]の中身を無視するようにすれば一応期待される動作になるかなと思いますので少々お待ちください.
(C++の解析処理はちょっと入り組んでいるので...)

2007/5/26 (土) 08:00:05 げんた  
INCM1.23c
[4849] Re4: C++アウトライン
テストバイナリを作成しました.
http://sakura.qp.land.to/?Junk%2F32

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

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

INCM/CMT
Cyclamen v3.81
[ut:0.010][st:0.000]