miau's blog?

VBReport

特殊なケースにも対応しておいたので備忘録っぽく。


○マイナー問題1

Type Hoge
:
:
Function String * 24
End Type


のようにユーザ定義型に Function というメンバがある場合、Function が関数定義として解釈されていしまう。
まぁ予約語をユーザ定義型のメンバ名に使うなっつー話ですが・・・某 IBM 製品のサンプルコードがこうなってたり・・・。

        Case "SUB", "FUNCTION"
ico = UCase$(Ary(0))

の部分を

        Case "SUB", "FUNCTION"
If Ary(1) = "" Goto Skip
ico = UCase$(Ary(0))

にすることで対応。


○マイナー問題2

プリプロセッサ的処理も行ってくれないため、

#If HOGE = 1 Then
Declare Sub Func Lib "A.DLL" ()
#Else
Declare Sub Fimc Lib "B.DLL" ()
#End If

みたいな処理では重複エラーでコケる。

        Set Nod = trvReport.Nodes.Add(o_Nod.Key, tvwChild, o_Nod.Key & "." & Key, Mbr, ico)

の前にでも

        On Error Resume Next

しておけばOK。


・・・とここまでやって、ようやく自分の作ったプロジェクトファイルの解析に成功。
まじめにオブジェクト指向をやった場合はこのアプリはほとんど役に立たないことが判明。
(関数でなくクラスのメソッドを呼ぶので。こういうのは解析できない)

・・・無駄足ですか。
posted at 03:23:39 on 2004-03-19 by miau - Category: VB6 No Trackbacks - Permalink

TrackBack

このエントリにトラックバックはありません
現在トラックバックは受け付けていません。

Comments

No comments yet

Add Comments

現在コメントは受け付けていません。
お手数ですが、 こちら のコメント欄にでも記載していただければと思います。