VBって1万行限界?

このエントリーをはてなブックマークに追加
1nek
友人が言うには
「VBって1万行以上のコードをコンパイルするとメモリ不足で落ちるからダメ」
とか言ってました。
マジですか?

私の会社のデータベースのプロジェクトプログラムは1万行越えてるような気がするんですけど。
2確率変動名無しさん :2000/09/10(日) 20:27
3万行のコード書いたらリソース不足でコンパイルできなかった。
いまやVBでDLLもOCXも作れるからとくに問題にはならなかったが。
3名無しさん@1周年 :2000/09/10(日) 22:10
0と1とNULLにVoidも仲間に入れて下さい(笑)
4名無しさん@1周年 :2000/09/11(月) 08:12
>>1
気のせいでしょ。
私の会社の VB5 のプログラムは3万行越えてた(コメント、空行含まず)
けど NT4.0 (メモリ128MB) でコンパイルできましたが?
5名無しさん@1周年 :2000/09/11(月) 09:25
1万行のコンパイルはメモリ不足ありえます。他のソフトを落としましょう。
後、コンパイルに10分かかるでしょう。

リソース不足に超弱いです。
コンポーネントを100張った画面を3つ同時に開くと、実行時エラーになるでしょう。

受託開発なら、”同時に画面を開けません”って逝っとけば良いのですが、
パッケージとなると、複数画面の連携が要るでしょう。
6>5 :2000/09/11(月) 09:34
いや興味あるんだけどコンポーネントを100張るって、窓ハンドル必要なコンポーネントを?
Delphiのグラフィックコンポ(親の窓ハンドルを使う)みたいなのは無いのかな?
まさか、textも窓ハンドルを消費するなんて事はないよね?
75 :2000/09/11(月) 09:46
実行時メモリエラーについて・・・
1画面に4タグ位あって、その1タグにコンボとエディットを張りまくってるだけです。
噂では、張っている数が多いとダメとか。
Delphiに移植、ついでに画面レイアウトもコンポーネント同士が連携するように駆使してめでたし解決しました。

後、4さんの言われる通り、NTだとコンパイルエラーは無いのかも。
8名無しさん@1周年 :2000/09/11(月) 10:59
メモリ不足なら単にメモリを増やせば良いだけなんじゃないの?
「コンポーネントを100張る」ってのもデザインセンス無いっぽいね。
95>8 :2000/09/11(月) 11:03
>メモリ不足なら単にメモリを増やせば良いだけなんじゃないの?
メモリを積んでもメモリ不足って逝うことです。

>「コンポーネントを100張る」ってのもデザインセンス無いっぽいね。
受託ソフトの人は羨ましいですね。データを入力するだけのソフト作ってんでしょうね。
パッケージっていうか、設計、予測となると、同時に複数情報見えんと困るんです。
108 :2000/09/11(月) 11:46
>受託ソフトの人は羨ましいですね。データを入力するだけのソフト作ってんでしょうね。
そうやって人を見下してる暇があったらリソース消費量を減らす努力をしましょうね。
PictureBox1つあれば大抵の事は出来ますよ、コンポーネントの意味無くなりますけど。
115 :2000/09/11(月) 11:53
>PictureBox1つあれば大抵の事は出来ますよ、コンポーネントの意味無くなりますけど。

どの項目が入力でどの項目が出力かっていうのは、固定ではありません。
入力した項目に合わせて他項目が調整されます。
12名無しさん@1周年 :2000/09/11(月) 12:14
>「コンポーネントを100張る」ってのもデザインセンス無いっぽいね。
>そうやって人を見下してる暇があったらリソース消費量を減らす努力をしましょうね。

なんか、ベクトルヴィービーっぽいヤツだな。
まだ生きてた?

コンポ100貼るのは確かにデザインセンスが苦しいが
それは糞SEが設計してくる時や、自分に関係の無い事で
左右されるという立場の連中もいると言うことを知っておけよ。
1310 :2000/09/11(月) 12:38
>入力した項目に合わせて他項目が調整されます。
DOSの頃ってコンポーネント無しで1つの画面に自力で沢山描いてたじゃない?
同じような事がPictureBoxでも出来るでしょ、って事。
部分的に書き直してRefreshで一括再描画ってテク使わない?

ベクトルじゃないです。
基本的にVBでは自分で設計したものしか作った事なかったので、
確かに想像力に欠ける部分はありましたねー、ゴメン。
145 :2000/09/11(月) 12:53
>DOSの頃ってコンポーネント無しで1つの画面に自力で沢山描いてたじゃない?
>同じような事がPictureBoxでも出来るでしょ、って事。
>部分的に書き直してRefreshで一括再描画ってテク使わない?

意味が分かりません。グリッドの事ですか?グリッドも沢山張ってます。
どっちにしても、Delphiにしたら、VB時の数倍を一覧出来、動きが速くなりました。
業務が複雑な場合、そんなところに力を入れたく無いんです。
15名無しさん@1周年 :2000/09/11(月) 13:42
Delphiでも100個WinHandleが必要なコンポーネント貼り付けたら
95/98でリソース不足になるんじゃないかな。
リソース喰わないコンポーネントか、丸ごと自分で描画処理書いて
1個のコンポーネントでまかなう(13がいいたかったのはたぶんこれ>14)
ようにして、入力が必要なところをクリックされたら動的にTEditを
生成とかすればOK。Tabキーによるコンポーネント移動を考慮するの
面倒だけどね。
165>15 :2000/09/11(月) 13:57
知らないやつが色々書くな。VBだけで起こる現象であることは事実。
VBはメモリだけでなく、画面作成が弱いんだから検討の必要無し。
画面の派生が出来ないし、アライン(レイアウト)の設定出来ないし。
Java-Swingみたいなマルチプラットホームが対応していることを、
Win専用のVBが出来ないんだから...
17名無しさんMe :2000/09/11(月) 14:19
試しに無意味に if や case で一万行作ってコンパイルしてみ余裕でできるから。
18>17 :2000/09/11(月) 14:26
分岐文をコンパイルしきれなかったら、コンパイラじゃないだろう。
どっちにしても、メモリ不足っていう話は、現実にいたるところに転がってる話なんだから。
19たぶん>17 :2000/09/11(月) 14:54
メモリがたりなくなるのはif caseよりグローバルな何かへの対応のせいじゃないかな
少なくてもif@`caseはローカルだからメモリが一瞬必要になるだけ。

にしても1万行が全部変数や関数だとしても1つの名前に1Kバイト取っても
10メガか・・・・やっぱり何かのリソース不足だろなあ
20名無しさん@1周年 :2000/09/11(月) 15:28
コンパイル出来ないのは、OCXを貼ってるから OCXが窓ハンドルを
沢山消費しててリソース不足の状態になってるとかそんな所じゃない?
1万行って事はフォームも数10ページ使ってそうな感じだし
21>20 :2000/09/11(月) 15:31
あなたは知らないかも知れないが、VBでは全てをOCXとして扱います。
例えば、コモンダイアログなら、Comdlg32.ocx。
2220>21 :2000/09/11(月) 15:57
だから、貼ってるOCXが画面に見えてるって事は窓ハンドルを
使ってるって理解ではマズイのかな?
2321>20 :2000/09/11(月) 15:59
あ、解説だったのか。正しい。厭だ氏嚢。
2420 :2000/09/11(月) 16:36
いや数10ページって事はないな、せいぜい十数ページか。厭だ氏嚢
2513 :2000/09/11(月) 17:04
VBでRefresh使った事無いって、そりゃ遅いって文句も出るわな〜。
便利な部分に頼り切った設計ならリソース不足にもなる。

>Delphiにしたら、VB時の数倍を一覧出来、動きが速くなりました。
何故そうなったのか解ってる?VBでもAPI駆使すれば出来る範囲だよ。

開発言語をコロコロ変えられるのってチョット羨ましい。
26>25 :2000/09/11(月) 17:13
もったいぶらずにどんどん書いてよ。
27D使い :2000/09/12(火) 01:27
>13
>>Delphiにしたら、VB時の数倍を一覧出来、動きが速くなりました。
>何故そうなったのか解ってる?VBでもAPI駆使すれば出来る範囲だよ。

VBより難しいと言われているDelphiなら簡単にできることが、
VBだと「API駆使すればできる範囲」に入るんですよね。
VBでAPI使うのってめんどくさいし。
(一般論であって特定の処理に限定した話ではない)

煽りじゃなくて、VBユーザーにDelphiを薦める理由ね。
28またーりくまたーりたやんばらやんやんやん :2000/09/12(火) 02:29
VBはマイクロソフトなのにAPI使う手続きがやたらと面倒。
Dephiは何もしなくてもそのまま使えます。

さあ、みんなも、Delphiでマターリしよう!
29名無しさん@1周年 :2000/09/12(火) 04:03
>>21
んなわけねーだろ、普通はAPI使ってんだよ
30名無しさん@1周年 :2000/09/12(火) 04:06
>さあ、みんなも、Delphiでマターリしよう!

そういやDelphiのスレって殆どないね。
31名無しさん@1周年 :2000/09/12(火) 10:41
>んなわけねーだろ、普通はAPI使ってんだよ
馬鹿なヤツ。Edit貼り付けるのにAPI使ってろ。

>そういやDelphiのスレって殆どないね。
Delphiって使ってるんだけど、困ること無いから、誰にも質問しない。
ソース公開コンポーネント多いし。
3225 :2000/09/12(火) 11:29
>VBはマイクロソフトなのにAPI使う手続きがやたらと面倒。
素人さんには勝手に使われたくないみたいよ、システムが不安定になるから。
でも定数は最初から準備されているので、そこだけ便利かも。
初心者向け言語なので文法の時点でチェックを厳しくしてるらしいね。

ちょっと昔、開発中のリブート回数はDelphiの方が上だったよ。←自業自得
33>32 :2000/09/12(火) 11:40
Delphi3は不安定だったから、大筋分かるんだけど、
VBランタイム以上にシステムを不安定にするものないよ〜
http://www5.airnet.ne.jp/init/vb/level1/level1001.html
34名無しさん@1周年 :2000/09/12(火) 11:48
VBはCのヘッダファイル取り込めたらいいのになぁ。
あとAPIは宣言なしで使えたらなぁ。

MSがんばれ。
35>34 :2000/09/12(火) 12:24
全然会話に沿ってない。
さすが、MSの被害者っていうか、VBでどういう被害にあったのか分かってない。
だから今ごろCのヘッダファイルだって(藁
3635 :2000/09/12(火) 13:02
「VBやってるとオブジェクト指向に辿り着けない」を目の当たりにした。
3734 :2000/09/12(火) 13:25
>35
>>32あたりの流れだったんだけどな。
まあ、別に無理に気が付いてもらわなくてもいいんだけど。
気が付かないぐらいなら余計な突っ込みするなって感じだね。

Cのヘッダは外部APIを使用するとき定義しなくても自動で
プロトタイプ宣言(VBの Declare)をしなくてもいいし、
型チェックや戻りチェックが自動的に行われたらいいなと思っただけ。
3835>37 :2000/09/12(火) 13:29
読んでて悲しくなった。
Win32APIコールが楽になってもMSが頑張ったことにならないでしょう、
上のレス読んでれば。
3934 :2000/09/12(火) 13:41
>38
MSが頑張って欲しいのは目的でなく過程なのですが。

それにMSが頑張ったことにならずSUNあたりが頑張ったことになると
思っているのかな?

言いたいことがまったくわからない。
40>39 :2000/09/12(火) 13:47
文章解読力無さ過ぎ。余りに飛躍した解釈。VB@解読力0君ですね。

MSのおかげで、VBによってひどい目に合わされたのに
(上のレス、または、「将来有望な言語と仕事内容は?」を参照)、
まだMSを応援するのか、と思ったの。
後、Win32APIコールはクラスライブラリの中に隠蔽されるという事実を、
VBを使う人は知る由も無いという事ですね。ソース付きクラスライブラリを一度使いましょう。
4134 :2000/09/12(火) 13:58
>40

Win32APIはVBで定義があるのでまったく問題になりません。
Cのヘッダを取り込むといえば当然外部DLLの話になると思うのですが、
こんなことにも気が付かないのですね。
少し呆れました。

それにMSを応援したくないのならWin系と決別しなさい。
Win32APIを語りながらMSを批判する矛盾は頭の悪を誇示しているだけです。
42>41 :2000/09/12(火) 14:08
>Win32APIはVBで定義があるのでまったく問題になりません。
>Cのヘッダを取り込むといえば当然外部DLLの話になると思うのですが、

もう一度だけ書いてあげます。Win32APIコールを楽に呼ぶのでなく、クラスライブラリ使いましょう。

>それにMSを応援したくないのならWin系と決別しなさい。
>Win32APIを語りながらMSを批判する矛盾は頭の悪を誇示しているだけです。
Win32APIは批判しないが、VBとは決別済。文章飛躍しすぎ。読んでて怖い。
4334 :2000/09/12(火) 14:19
>もう一度だけ書いてあげます。Win32APIコールを楽に呼ぶのでなく、クラスライブラリ使いましょう。

じゃあうんざりですが、こちらももう一度書きます。

Cのヘッダは外部APIを使用するとき定義しなくても自動で
プロトタイプ宣言(VBの Declare)をしなくてもいいし、
型チェックや戻りチェックが自動的に行われたらいいなと思っただけ。


>Win32APIは批判しないが、VBとは決別済。文章飛躍しすぎ。読んでて怖い。

VBを批判するのは別に止めませんが。
考えてから発言をしてください。
4442 :2000/09/12(火) 14:21
とにかく、34はそれまでの流れを無視した文章。
それまで、VBやめたら?で来てたのに、突然、VB@MSバンザイ。
34には、「VB@解読力0君」という名前をあげましょう。
45うーん :2000/09/12(火) 15:09
どっちもどっちだよ、君たちぃ。
46名無しさん@1周年 :2000/09/12(火) 15:11
そうだね、VB@解読力0君と会話すると、自分もそのレベルまでおちちゃう。
47うーん :2000/09/12(火) 17:26
↑君も
48確率変動名無しさん :2000/09/12(火) 18:20
>46
どちらかというと解読力0君はキミ

VB君は知識0君
49確率変動名無しさん :2000/09/12(火) 18:28
>46
ごめん
キミも知識0君だ。
50オレモクソネー :2000/09/12(火) 18:42
ああ、夏休みはまだ終わっていないのか(ズズズ(オチャオススル
51名無しさん@1周年 :2000/09/12(火) 21:33
大学生は試験が終わって暇な時期?

苦労しらずの万年暇人多いからな。
52>51 :2000/09/12(火) 23:41
ドキュン発見!

大学の夏期休暇が9月半ばまであるって知らないの(藁)
53>52 :2000/09/13(水) 13:38
そんなもの、学校によって千差万別
54VB作った人 :2000/09/14(木) 05:27
なになに?
VBの話してるの?
俺に聞けってーの。
55そんな長いの :2000/09/14(木) 07:00
書くな。
56名無しさんだよもん :2000/09/14(木) 09:38
>54
VBは.NETで発展しますか?
57名無しさん@1周年
>56
もし既存の拡張だったら、いままでより更に目も当てられないな。
言語仕様だけ残してアーキテクチャは全面書き換えじゃない?