開発環境:WinXP, VS.NET2003
現在VB.NETで複数作成したCLASSをDLL化しようとしていますが、
コマンドラインでどうしても作成エラーになってしまいます。
classA, classB という二つのクラスがあったとして、
classAには[ Private clsB As New classB ]の宣言をしています。
コマンドラインで[ vbc /target:library classA.vb ]を実行すると、
「error BC30002: 型 'classB'が定義されていません」とエラーが発生。
Dir関数などのエラーは「Imports Microsoft.VisualBasic」やら
「Option Explicit Off」で解決できたのですが、
他のクラスを読み込むところが分かりません。
DLL作成の基礎知識などもないので、根本的な部分で間違ってるような
気もするのですが、ヘルプ等でも探し出せませんでしたので
投稿させていただきました。
どなたかご存知の方、ご教授いただけませんでしょうか。
よろしくお願いします。
VS.NET2003ならDLLファイルに変える装置がついていますよ。
VS.NET2003を起動させて、
ファイル→新規作成→プロジェクト→
プロジェクトの種類でVisial Basic プロジェクトを選択して、
右にあるテンプレートの中でクラス ライブラリーを選んでください。
ついでにプロジェクト名と保存先を記入し忘れないでください。
次にソースを記載して、
ビルド→ソリューションのビルド→ファイル→すべてを保存をクリックします。
そうすると、いつもはEXEファイルが出来る所にDLLファイルが作成されます。
多分これで出来ると思います。
私もVB.NET2003でこの方法でDLLファイルを作成していますから。
マグさん、早速のご返答ありがとうございます。
マグさんの手順でやったところ、DLL作成できました!
コマンドラインとは何が違うのかは分かりませんが。
ありがとうございます。
で、もう少し質問があるのですが、実はクラスは二つだけではなく、
全部で20くらいあるのですが、それぞれをDLL化したいと思っています。
(ケータイでダウンロードさせる仕組みになるので、
デカいファイルは無理だし、変更したクラスだけ入れ替えたいので)
今回の場合はclassAがclassBを必要としていたために
できたDLLはどちらも含んでいるということですよね?
例えば、もしclassCもDLLするとして、それがclassBを必要としていたら、
classAとclassCにはどちらも同じclassBを含んでいるということに
なるのでしょうか?で、もしclassBに変更を加えることになったら、
classA,Cどちらも再コンパイル(DLL化)しないとダメなのでしょうか?
質問がややこしくて申し訳ないのですが、よろしくお願い致します。
私には分かりません。
そのようなことは今まで行ったことがないし、
ケータイの機能を増やしたこともありません。
付け足しです。
とりあえず、いろいろ試してみては?
ClassA、ClassB等をそれぞれ別DLL(別プロジェクト)として作成すればOKでは?
ClassBがClassAを使う場合、ClassBのプロジェクトでは作成済みのClassA.Dllを
インポートするって感じです。
マグさん、zさん、返信が遅くなり申し訳ございません。
また、ご返答ありがとうございました。
仕様上どうしてもケータイを使わなくてはならず、
いくつものDLLを作成しないといけないという点では
かなり面倒なものがありますが、やってみます。
また何か問題点が出てきたらお願い致します。