循環参照エラーが発生します。モジュールのコンパイルの順序を指定できますか?

解決


こまめ  2009-11-11 00:32:49  No: 102068

VB6.0 SP6
WinXP SP3

いつもお世話になります。

循環参照エラーが発生します。
プロジェクトの内容として
・basDefin.bas
⇒public constやpublic変数を纏めています。

・basStruct
⇒public Typeを纏めています。

・basPublic
⇒public関数を纏めています。

public Typeで構造体を作る際にbasDefineのpublic constを参照したり、
public変数を定義する際にbasStructを参照したりしています。

その場合に、全く同じコードでも循環参照のエラーが発生したり、しなかったりします。(ここは非常に解せないのですが。)

コンパイルをする順序を指定できるのでしょうか?
どのような順序でコンパイルされているか全く分かりません。

C言語で言う[include]のような構文があれば理解しやすいのですが…。

そもそも、上記のようなモジュール構造にしない方が良いのでしょうか?
定義のモジュールは一つに纏めた方が良いのでしょうか?

以上です。よろしくお願いします。


K.J.K.  2009-11-11 19:23:45  No: 102069

# 久しぶりに書き込みます。

単純に、変数を置く場所を変えるとか。
このような分け方ならば、関数と同じモジュールにするのが無難かと。


N・アクア・ドルフィン  2009-11-12 22:03:36  No: 102070

ワクワクを思いだんすんだ


こまめ  2009-11-13 22:51:29  No: 102071

K.J.K.さん、お返事ありがとうございます。

定義モジュールをもっと分割して考えるようにしました。

私の書いていたモジュール構造では例えIncludeのような構文があっても実現できませんね(汗

basDefine
⇒const、Enumでまとめる

basStruct
⇒Typeでまとめる

basPublic
⇒public関数のみ

basGlobal
⇒basStructやbasDefineで定義しているものを使用しグローバル変数を定義する

basGlobalを作ったことにより循環参照はなくなったかなと思います。

循環参照が起きたり、起きなかったりと言った解せない現象は何故だか分かりませんが、とりあえず解決とします。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加