- PR -

複数クラスをDLL化(クラスライブラリ)

投稿者投稿内容
tamao30
常連さん
会議室デビュー日: 2004/11/16
投稿数: 34
投稿日時: 2006-06-27 01:27
お世話になります。ビギナーですがよろしくお願いいたします。

VB.NETでお伺いさせていただきます。

複数のクラスのファイル(拡張子.vb)がありまして、クラスライブラリを作りたいのですが(DLL化)、それぞれのクラスが、別のクラスを参照し合っておりまして、
新規作成−プロジェクト−VBクラスライブラリを作成しようとしますと、DLLが作成されません。
ビルドをすると、別ファイルなので、定義がされていません。や、宣言されていませんなどのエラーが出ます。

複数の関連し合ったクラスをDLL化するのはどうすればよろしいでしょうか?

よろしくお願いいたします。
まどか
ぬし
会議室デビュー日: 2005/09/06
投稿数: 372
お住まい・勤務地: ますのすし管区
投稿日時: 2006-06-27 02:14
引用:

複数のクラスのファイル(拡張子.vb)がありまして、クラスライブラリを作りたいのですが(DLL化)、それぞれのクラスが、別のクラスを参照し合っておりまして、
新規作成−プロジェクト−VBクラスライブラリを作成しようとしますと、DLLが作成されません。
ビルドをすると、別ファイルなので、定義がされていません。や、宣言されていませんなどのエラーが出ます。


「新規作成」と「別ファイルなので」の関係がよくわかりません。。。

そのプロジェクト内のクラス間での参照なら、PublicやFriendなど他が参照可能なスコープになっていますか?
そのプロジェクトの外を参照するなら、「参照の追加」でプロジェクトをソリューションに追加するか、
アセンブリ(DLL)を追加する必要があります。

引用:

複数の関連し合ったクラスをDLL化するのはどうすればよろしいでしょうか?


循環参照が無いことや正しい依存関係であれば問題ありません。

プロジェクトとクラスの参照関係を書いてみてはどうでしょうか。
[DLL1]
A→B
B→C
など。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-06-27 07:23
引用:

tamao30さんの書き込み (2006-06-27 01:27) より:

それぞれのクラスが、別のクラスを参照し合っておりまして、新規作成−プロジェクト−VBクラスライブラリを作成しようとしますと、DLLが作成されません。
ビルドをすると、別ファイルなので、定義がされていません。や、宣言されていませんなどのエラーが出ます。
複数の関連し合ったクラスをDLL化するのはどうすればよろしいでしょうか?


というより、特殊なことがない限り、アセンブリ内で解決するのが一般的じゃないでしょうか?
利便性を損なうようなことを、わざわざ選ぶ理由は特にないと思います。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
R・田中一郎
ぬし
会議室デビュー日: 2005/11/03
投稿数: 979
投稿日時: 2006-06-27 12:04
1.ひとつのソリューションファイルに、DLL 化したい単位でプロジェクトを作って、それらの下にクラスファイルを配置します。

2.作りたいDLLのプロジェクトがビルドできるように、参照設定などを見直します。

3.ビルドが通れば完成です。

#そういうことじゃない?w
ぶさいくろう
ぬし
会議室デビュー日: 2005/11/22
投稿数: 1232
お住まい・勤務地: 川崎市(は俺も含めてロクな人間が住んでないよw)
投稿日時: 2006-06-27 12:18
引用:

R・田中一郎さんの書き込み (2006-06-27 12:04) より:
1.ひとつのソリューションファイルに、DLL 化したい単位でプロジェクトを作って、それらの下にクラスファイルを配置します。

2.作りたいDLLのプロジェクトがビルドできるように、参照設定などを見直します。

3.ビルドが通れば完成です。

#そういうことじゃない?w


依存関係はそれでバッチシだわな。
複数のDLLが必要になるけど。

>複数の関連し合ったクラス
なに?循環参照でもあるの?
囚人
ぬし
会議室デビュー日: 2005/08/13
投稿数: 1019
投稿日時: 2006-06-27 12:23
複数の DLL にしたところ循環参照の問題が出たという事でしょうか?
一つの DLL にするのは駄目なんですか?
_________________
囚人のジレンマな日々
べる
ぬし
会議室デビュー日: 2003/09/20
投稿数: 1093
投稿日時: 2006-06-27 13:15
要するに「コンパイルが通らない」って質問ですよね?

引用:
複数の関連し合ったクラスをDLL化するのはどうすればよろしいでしょうか?

端的に言えば一つのプロジェクトにそのクラスのファイルを含めてビルドすればいいだけです。

引用:
それぞれのクラスが、別のクラスを参照し合っておりまして、

「別のクラス」は他方のクラス?第3のクラス?
「参照し」ってのは具体的には(コード上で)どうなってるんですか?

引用:
ビルドをすると、別ファイルなので、定義がされていません。や、宣言されていませんなどのエラーが出ます。

エラーが出た部分のコードは?

DLLは1つできればいいんですよね?

[追記]
クラス同士の循環参照(と言うのかわかりませんが)はコンパイルは通るはずです。
(実行時にヤバい恐れはあるけど)

[ メッセージ編集済み 編集者: べる 編集日時 2006-06-27 13:21 ]
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2006-06-27 18:40
ホント、これしか書いてないや
引用:

それぞれのクラスが、別のクラスを参照し合っておりまして


その設計が悪い。
クラスの参照は一方向、参照の数は少なくするべき。

どれかのクラスが変更になったとき、どのクラスが影響を受けるか、わからないでしょ?

スキルアップ/キャリアアップ(JOB@IT)