- - PR -
VBでヘッダーファイルを取り込む方法
投稿者 | 投稿内容 | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2007-04-08 18:12
.NET【超】初心者です。低レベルな質問で失礼いたします。
お知恵を拝借できますでしょうか。 ※私は少しだけC言語の知識があります。あとはExcelVBAを少々です。 ズバリ、言語の選択に迷っております。経緯を説明しますと・・・ ※おかしな所があったら、ご指摘下さい。 @ASP.NETでWebサーバを使用したWebアプリケーション開発を検討した。 ※開発は複数人で行う A比較的、簡単そうなVBを選択 BDBの読込、書込関数を共通化しようとしたところ、そのテーブル項目を宣言する為にCALL側全てに同じ宣言をしなければいけない為、VBを断念。 ※C言語のヘッダーファイルINCLUDEみたいに宣言を取り込み、共通化したかった CC#を調べてみたところ、こちらもINCLUDEが無い事が判明。C#を断念。 DVC++を調べてみました。INCLUDEはあるものの、肝心なASP.NETを完全にサポートしていない、との事。 E困って、こちらに参りました(;;) 以上です。要は複数人で開発するために、宣言文なんかも別ファイルで共有したいと言う事なんですが、どうにも方法が分かりません。 できたらVBで、だめならC#でも良いのですが、こういう事って出来るのでしょうか? VBの本格的開発を経験した事がなく、ご教授願えればと思います。 本当に変な質問ですみませんm(__)m | ||||||||||||||||
|
投稿日時: 2007-04-08 18:24
>DBの読込、書込関数を共通化しようとしたところ、そのテーブル項目を宣言する為にCALL側>全てに同じ宣言をしなければいけない為、VBを断念。
> ※C言語のヘッダーファイルINCLUDEみたいに宣言を取り込み、共通化したかった そもそも考え方を間違っているのにも関わらずVBやらC#を断念しているあたりがおかしい。 ふつー新しい言語を取り組むならそれなりの調査をしてから仕様検討に入ろうよ。 そうしないと糞プロジェクトが増えちゃうからさ。 #クラスを知らない人の共通化ってくだらない足かせを作る仕組みでしかないよね | ||||||||||||||||
|
投稿日時: 2007-04-08 18:27
VB.NET や C# には include というものがありません。
で、難しい事を言い出すときりがないので簡単に説明すると、アセンブリ(厳密に言うと正確ではありませんが、exe や dll の事だと思ってください)自身に定義が書いてあり、参照するだけで定義が分かります。つまりヘッダファイルが必要ありません。 なので、共通化したいところだけ別の DLL 等にして、他はそれを参照するだけで良いです。宣言文が書かれたファイルはいりません。 VB.NET でも C# でもやれる事は変わりありません。好みでお好きな方をどうぞ。 _________________ 囚人のジレンマな日々 | ||||||||||||||||
|
投稿日時: 2007-04-08 19:31
ぶさいくろうさん、本当に迷惑な質問で失礼しました。お気を悪くされたようで申し訳ございません。
囚人さん、ご回答ありがとうございます。 まだ、ピンときていないのですが、CALLされたプログラムでレコードを読み込み、上位プログラムでその値を見たいと思っています。 この下の回答は、共通化したい機能をDLLにする・・・と言う意味でしょうか。 >なので、共通化したいところだけ別の DLL 等にして、他はそれを参照するだけで良い >です。宣言文が書かれたファイルはいりません。 C言語的な考え方でやっているので、それでおかしくなっているのかも知れませんが、私が考えていたのは次の通りです。 @親プログラムで配列などの変数を宣言 A子プログラムに配列などの変数を参照渡し B子プログラムがDBのある値を読み込み、値をセット ・・・で、親プログラムに返り親は参照渡しで渡した変数を使用して処理を続行。 この時、複数個(CHAR型やINT型みたいな別の型のもの)の参照渡しするため、宣言が親と子に必要だな・・・と思ったのです。 それでも、囚人さんのおっしゃっている内容なら、宣言は必要ないんだよって言う事でよろしいのでしょうか? もし、そうでしたらそちらの方向で調査してみたいと思います。 まだ、開発には入っておりませんので、当方には時間があります。 その間、色々とご教授願えれば幸いです。 どうぞよろしくお願いいたします。 | ||||||||||||||||
|
投稿日時: 2007-04-08 20:39
気は悪くしていないよ。もともとこういう口調なのよ。 でもちょっと言いすぎたね。ごめんね。
まあとりあえずそういう考えでいいからクラスライブラリのプロジェクトを作ってみてちょ。 新規でプロジェクトを作成するとWindowsアプリケーションだとかを選択できる画面が出てくるでしょ? あそこでクラスライブラリを選択するとDLL用のスケルトンコードができあがる。
まずCの考え方はやめた方がいいかな。 君への説明としてはどちらかといえばExcelVBAに近いと言った方がわかってもらえるかな?
このプログラムって言ってるのがアセンブリというものにあたるのだと思うけど。 こういう区分けはしない方がいいよ。 しかも今夏はWebアプリケーションだったりするんでしょ? だとしたらこの考えでは開発はできないよ。 やるならDLLで内部的にすべての処理を背負うようにした方が良い。 アセンブリをまたいで処理させるということは結合度が増すから保守しにくくなる。 こんな書き方でわかるかなぁ。 Cをやっているなら今までDLLとか作らなかった? [ メッセージ編集済み 編集者: ぶさいくろう 編集日時 2007-04-08 20:41 ] | ||||||||||||||||
|
投稿日時: 2007-04-08 21:19
時間があるのならば、本を読んで一通り体系的な知識は身につけた方がよいでしょうね。
私が知らないだけかもしれませんが「CALLされたプログラム」「上位プログラム」「親プログラム」「子プログラム」というのが何なのかよくわかりません。それぞれ別の概念でしょうか?
「複数個の参照渡しをするから宣言が必要」とはどういう意味でしょうか? C言語的な考えならば、単個でも複数個でも関係なく、呼び出し側には宣言が必要かと思います。 _________________ 囚人のジレンマな日々 | ||||||||||||||||
|
投稿日時: 2007-04-08 22:26
まず、囚人さん。ありがとうございます。
>「複数個の参照渡しをするから宣言が必要」とはどういう意味でしょうか? これは、複数個だからという意味ではありませんでした。紛らわしくてすみません。 宣言文はそれぞれの関数内で書くと思うのですが、同じテーブルの項目を宣言する場合に限っては沢山の宣言があれば、あるほど面倒だからどこかひとつのファイルで宣言文を書いて置いて、それをそれぞれみんながインクルードすれば、みんなとっても楽ですよね。。と、言いたかっただけでしたm(__)m 次にぶさいくろうさん、丁寧な説明をありがとうございました。 >まずCの考え方はやめた方がいいかな。 これ、衝撃でしたが(笑)。そういう事なんでしょうか。 DLLだけは少しだけ分かったのですが、DLLに全てを任すっていう開発をした事がないものでしたので。 初めは???でしたが、何度も繰り返して見ている内に、その回答で納得できました! 上位から下位プログラムへは目的処理を投げっぱなし位の勢いという事ですよね? あとは下位プログラムでキチンとやってね・・・って、いう作り方かな? ぶさいくろうさん、この考え方で合ってますでしょうか? | ||||||||||||||||
|
投稿日時: 2007-04-08 23:36
うーん。下位プログラムってDLLのことだと仮定すればあながち間違いじゃないと思う。 それにしてもこのあたりの概念ってうまく説明できないよね。 実際組んでもらって実感してもらうしかないような気がする。 なんつーか。モジュールとかの結合度とかそういった基本的な概念さえしっかりしていれば何となくわかってくるものなんだけどね。 |