1read 100read
2012年08月プログラム38: VBプログラマ質問スレ(Ver.6.0 まで) part60 (631) TOP カテ一覧 スレ一覧 2ch元 削除依頼
main以外★mallocの後にfree不要と言うバカいるの? (374)
【マック】Macintoshプログラミング質問箱 (525)
Lisp Scheme Part35 (221)
【3DS】プチコンを語るスレ【DSi】 (662)
●●●●TCL/TKなら俺に聞け 2●●●● (921)
COM (306)

VBプログラマ質問スレ(Ver.6.0 まで) part60


1 :2012/10/27 〜 最終レス :2012/12/06
ここは Visual Basic 〜6.0 の質問スレです。
質問者は使用しているOS、VBのバージョン、サービスパックのバージョン、
「何がしたくて、どうしたけど、どう困っているのか」を明確に書きましょう。
VB.NETは別物なので専門スレで、VBA、APIの質問もそれぞれのスレで。
○ 質問者の心得
 一.質問する前にMSDNやGoogle、過去ログにも目を通してみる。
 二.VBScript、インストーラーなどはこのスレでOK。
 三.質問は第三者にもわかりやすいよう簡潔かつ具体的に。
 四.荒らしは相手しない。
○ 回答者の心得
 一.答えられない質問は無駄に罵倒せずスルー。無理するな。
 二.代用法を強制しない。
 三.回答する上で必須ではない情報をむやみに聞き返さない。
 四.荒らしは相手しない。
 五.VB情報募集中。
 六.回答は質問者が理解できるよう具体的に。
MSDN Online Japan ホーム
 http://www.microsoft.com/japan/msdn/default.asp
Visual Studio 6.0 Service Pack 6
 http://msdn.microsoft.com/vstudio/downloads/updates/sp/vs6/sp6/default.aspx
Google
 http://www.google.co.jp/
※「まず自分で調べる」クセを身につけよう。

2 :
Part 1 http://piza2.2ch.net/tech/kako/968/968328471.html
Part 2 http://piza2.2ch.net/tech/kako/990/990793224.html
Part 3 http://piza2.2ch.net/tech/kako/1000/10005/1000523122.html
Part 4 http://pc.2ch.net/tech/kako/1006/10069/1006922992.html
Part 5 http://pc.2ch.net/tech/kako/1010/10106/1010624646.html
Part 6 http://pc.2ch.net/tech/kako/1013/10138/1013844542.html
Part 7 http://pc.2ch.net/tech/kako/1015/10158/1015836357.html
Part 8 http://pc.2ch.net/tech/kako/1018/10187/1018794901.html
Part 9 http://pc.2ch.net/tech/kako/1020/10208/1020830472.html
Part10 http://pc.2ch.net/tech/kako/1022/10221/1022127528.html
Part11 http://pc.2ch.net/tech/kako/1024/10243/1024380249.html
Part12 http://pc3.2ch.net/tech/kako/1026/10266/1026642565.html
Part13 http://pc3.2ch.net/tech/kako/1029/10292/1029241786.html
Part14 http://pc3.2ch.net/tech/kako/1030/10309/1030947162.html
Part15 http://pc3.2ch.net/tech/kako/1032/10327/1032706491.html
Part16 http://pc3.2ch.net/tech/kako/1034/10343/1034302532.html
Part17 http://pc3.2ch.net/tech/kako/1036/10361/1036154952.html
Part18 http://pc3.2ch.net/tech/kako/1038/10381/1038103769.html
Part19 http://pc3.2ch.net/tech/kako/1039/10398/1039859691.html
Part20 http://pc2.2ch.net/tech/kako/1041/10418/1041879465.html
Part21 http://pc2.2ch.net/tech/kako/1044/10440/1044028945.html
Part22 http://pc2.2ch.net/tech/kako/1046/10463/1046354784.html
Part23 http://pc2.2ch.net/tech/kako/1047/10477/1047743187.html
Part24 http://pc2.2ch.net/tech/kako/1050/10501/1050151126.html
Part25 http://pc2.2ch.net/tech/kako/1052/10526/1052627913.html
Part26 http://pc2.2ch.net/tech/kako/1055/10551/1055145106.html
Part27 http://pc2.2ch.net/tech/kako/1058/10586/1058674927.html
Part28 http://pc2.2ch.net/tech/kako/1061/10612/1061296197.html
Part29 http://pc2.2ch.net/tech/kako/1065/10654/1065446334.html

3 :
Part30 http://pc2.2ch.net/test/read.cgi/tech/1069160036/
Part31 http://pc2.2ch.net/test/read.cgi/tech/1073732636/
Part32 http://pc5.2ch.net/test/read.cgi/tech/1077216109/
Part33 http://pc5.2ch.net/test/read.cgi/tech/1080606445/
Part34 http://pc5.2ch.net/test/read.cgi/tech/1084544243/
Part35 http://pc5.2ch.net/test/read.cgi/tech/1087519251/
Part36 http://pc5.2ch.net/test/read.cgi/tech/1092906058/
Part37 http://pc5.2ch.net/test/read.cgi/tech/1090286450/
Part38 http://pc5.2ch.net/test/read.cgi/tech/1095673000/
Part39 http://pc5.2ch.net/test/read.cgi/tech/1099737063/
Part40 http://pc5.2ch.net/test/read.cgi/tech/1106748775/
Part41 http://pc8.2ch.net/test/read.cgi/tech/1112414085/
Part42 http://pc8.2ch.net/test/read.cgi/tech/1116924129/
Part43 http://pc8.2ch.net/test/read.cgi/tech/1123952677/
Part44 http://pc8.2ch.net/test/read.cgi/tech/1130231657/
Part45 http://pc8.2ch.net/test/read.cgi/tech/1133977286/
Part46 http://pc8.2ch.net/test/read.cgi/tech/1138975113/
Part47 http://pc8.2ch.net/test/read.cgi/tech/1141320612/
Part48 http://pc8.2ch.net/test/read.cgi/tech/1146678926/
Part49 http://pc8.2ch.net/test/read.cgi/tech/1152667953/
Part50 http://pc10.2ch.net/test/read.cgi/tech/1161517193/
Part51 http://pc11.2ch.net/test/read.cgi/tech/1169949451/
Part52 http://pc11.2ch.net/test/read.cgi/tech/1179563617/
Part53 http://pc11.2ch.net/test/read.cgi/tech/1187667616/
Part54 http://pc11.2ch.net/test/read.cgi/tech/1204552981/
Part55 http://pc12.2ch.net/test/read.cgi/tech/1247487156/
Part56 http://hibari.2ch.net/test/read.cgi/tech/1275397597/
Part57 http://toro.2ch.net/test/read.cgi/tech/1304095827/
Part58 http://toro.2ch.net/test/read.cgi/tech/1328782534/

4 :
VBプログラマ質問スレ(Ver.6.0 まで) part59
http://toro.2ch.net/test/read.cgi/tech/1344325875/

5 :
もつ

6 :
駄スレが立った、また、立った
1 おつ

7 :
これでVB6の構文は全部捉えきれるかな?
function run(id1,id2) {
 var textarea1 = document.getElementById(id1);
 var textarea2 = document.getElementById(id2);
 var v = textarea1.value.match(/([a-zA-Z][a-zA-Z0-9_]*([\$\#\!\&]|)|[0-9]+(\.[0-9]+|)([\$\#\!\&]|)|\.[0-9]+([\!\#]|)|"[^"]+"|[\>\<]\=|\=[\<\>]|\<\>|\>\<|[\+\-\*\/\\\(\)\=\<\>\.:,_]|'.+| +)/g);
 var t = '', i;
 for(i=0;i<v.length;i++) {
  t += i + ' = "' + v[i] + '"\n';
 }
 textarea2.value = t;
}

8 :
Win8買ってVB6を入れてみた。
相変わらずProgram Filesには入れられないが、
他のフォルダなら普通に通った。
まだ現役だ。

9 :
もう捨ててやれよ・・・

10 :
>>8
>相変わらずProgram Filesには入れられないが、
入りますが何か?
しれとも入れ方を知りたくてわざと馬鹿なカキコしたのかな?
教えないから安心してね。

11 :
来週からVBの仕事なのに久しぶりにVB立ち上げたらなにもかも忘れてた...死にたい。

12 :
>>11
Rば?

13 :
CreateObjectで指定できるProgIdの一覧ってどこかにまとめられていませんか?

14 :
>>13
なんでも一覧を欲しがる奴っているよね?
そういう奴に限ってみんなのために自分が一覧を作ろうとは思わない。
利己主義者。エゴイスト。あーやだやだ。

15 :
>>11
久しぶりにVB触ったら、UBoundでとれる配列の数が、配列のindexの最大値か
配列の数そのものか忘れてた。

16 :
たまにはLBoundも思い出してやってください

17 :
ひろしです

18 :
Lsetって便利だけど.netへの移行時に死ぬような目に遭う。
これって変じゃね?

19 :
はあ。

20 :
>>10>>12>>14
ここらへんが人間のクズってやつやね
あーやだやだ

21 :
>>20
全部俺のカキコじゃねーか?コラ

22 :
>>18
移行なんて考えてはダメだ。

23 :
VBドカタってなんでプログラムができないの?

24 :
他の言語のスレと違って、オブジェクト指向をあんまり理解しない人が
いるのが、このスレの住人の特徴です。


25 :
上を目指さないから

26 :
【 注意 】
飼育管理していますので
勝手に猿に餌を与えないよう願います

27 :
猿が餌を欲しがっています。
>>24に餌を上げていいですか?
毒餌さですがwwww

28 :
オブジェクト指向の適切な使い方を知らないで使いまくっているアホを見ると
元からオブジェクト指向を知らないプログラマの方が
安心して仕事を任せられるから不思議

29 :
以前にObjectにNothingの代入が必要か不要かで議論になったけど
Terminateイベントを早めに起こすという理由のためにNothingを入れてる先生がいるけど
あれって正論なのかな?
http://jeanne.wankuma.com/tips/vb6/directory/delete.html

30 :
「不要になった時点」と関数の最後の間にコードがなければ
そのコードを実行する前に開放してくれるんだから効果はあると思う。
冗長にはなりそうだが。

31 :
>>29>>30
一つのモジュールにダラダラとクソ長いコードを書く初心者がVB6使いには
多いので、使い終わった時点でNothingしとけよっていう教え方は
     せ ざ る を 得 な い
ところだと思う。

32 :
>>29
VB6とVB.NETを混同してるでしょw
VB6の場合は議論の余地はない

33 :
馬鹿が構築したオブジェクトと、継承にはうんざり

34 :
>>33
VB6までに継承なんてあったっけ?

35 :
"有る" と言って、お前は納得するのか ?w

36 :
>>32
いや、その先生はVB6でNothingの早期代入を推奨してるんだが???
.Netはガーページコレクションに任せればいい(任せなければならない)ので
議論の余地がないのは分かるけどね。

37 :
>>34
実装継承は無いがインタフェース継承はある。俗に言うテンプレートみたいなやつ。

38 :
>>37
そか。あれも継承っていうんだ。さんくす。

39 :
継承は良くない

40 :
君が理解できないからか?

41 :
継承を安易に使う奴に警鐘を鳴らせ

42 :
馬鹿なのは羹にこりて膾を吹く奴。
さらに馬鹿なのは、羹が何か理解できないくせに羹に懲りてる奴w

43 :
失敗すらできない臆病チキンの輩が何か言ってら

44 :
我家のなますはたこ入りでした。

45 :
>>29
今更の話題。とっくに答えは出てるね。
そのコメントだけじゃ判断できなくて、
Nothingを代入する意味が正しくわかっているなら、
Terminateイベントを早めに起こすというのは間違いじゃない。
だけどよくある勘違い、つまりNothingを代入した時点で
Terminalイベントが発生すると思っているのであれば間違い。
Nothingの代入は、Terminalイベントを発生させる命令ではない。
Newしたオブジェクトは、複数の変数に代入することで
複数の変数からオブジェクトを参照することが出来る。
Terminalイベントが発生するのは、どこからも参照されなくなった時。
時間がかかる処理の前に(Nothingを代入することで)どこからも参照されなくなれば
早く開放される。それが目的なら使わなくなったときにNothingを代入するのは意味がある。
(あと循環参照を断ち切ったりグローバル変数を開放するためにNothingを代入することもある)
スコープが終わるタイミング(変数がなくなるのでNothingをするのと同等になる)で
参照を破棄されるのが問題ないのであればわざわざNothingを代入する必要はない。

46 :
>Newしたオブジェクトは、複数の変数に代入することで
>複数の変数からオブジェクトを参照することが出来る。
詭弁だな。
あたかもNEWしたオブジェクトを別の変数に入れる事で
別の用途に同時使用できるかのような書き方だ。
初心者はこういう語学に問題のある筆者の本を読んで間違いに走る。
後で修正するのは我々なんだよな。

47 :
>>46
オブジェクトを使用する場合、特に初心者に向けての忠告であれば
宣言1回、SET1回で終わるのが大抵なのだから
あえて複数SETで多参照とか前提にして
簡単な事をあえて難しく見せることに意味はないよね。
単に天邪鬼って事でFA?

48 :
たぶんあの時ドヤ顔でNothing不要論を唱えてた輩でしょ?
今頃まともなツッコミが入ったので慌ててるんでしょう。
触らぬアホに祟り無しといいます。

49 :
>今更の話題。とっくに答えは出てるね
答えが出てなかったから、今頃慌てて補足しているくせにwww

50 :
この例なんか見ると執拗なほどにNothingを代入しているね。
http://jeanne.wankuma.com/tips/vb6/directory/getfilesystementries.html

どうやら、Objectは不要になった段階でNothingを代入する派に軍配が上がったね。

51 :
>>50のサンプルコードだけで一つのプロシージャならわざわざNothingしなくてもという気がするのだが

52 :
>>51
気になったんで、その執筆者 「 不要になった時点で参照を解放する (Terminate イベントを早めに起こす)」
について、連絡をするフォームから問い合わせていた件で回答が来た。
要約すると、VB6の場合でもオブジェクトが使い終わった時にどこからも参照されない事を明確にする意味で
Nothingを代入するように心がけた方が良いとのお話。実際に早期にNothingを代入した場合とそうでない場合とで
VB Decompiler でコードを追いかけてみたところ、明らかにリソースの解放タイミングが早期に行われるようになっていた。
ロジック的にはNothingを代入しようとしまいが関係はないが、システムリソースに気を配った優しい設計を
心がけるように自分はしているとの事でした。僕も見習っておうしようと思います。

53 :
結局、Nothing代入不要論者は優しくない女にもモテないブサイク君って事か?
だから魔界の仮面弁士たる彼はオペラ座の怪人みたく仮面をかぶってるわけな。

54 :
>>53
魔界の仮面弁士さんのVB6スキルは半端なく凄いけど
あの人って一体どんな仕事してるんだろうね。

55 :
>>52
なるほどなぁ。納得。
新規の仕事になら適用してもいいかな。
改修の仕事でそれをやるとソースコードレビューで他とやり方が違うとか叩かれて
元に戻されるのがオチだろうし。

56 :
>>55
>ソースコードレビューで他とやり方が違うとか叩かれて
そんな目を皿のようにしてソースを見て叩くクライアントがいるのか?
客選べよw

57 :
つまり、mallocしたものはfreeしろと。
malloc/free論争。

58 :
>>52
単純に終焉処理を先に行っておけということでしょ?
http://homepage1.nifty.com/CavalierLab/lab/vb/clsmdl/instance_02.html
参照回数がどうたらこうたらとトンJンな事をのたわまるアホがいるから複雑なだけで
単純にオブジェクトのデストラクタ処理を前倒しで行っておけば
プロシージャ―~出る時にデストラクタのラッシュを回避できるって事だろう。
平たく言えば、フォームを閉じるときになかなか閉じないキレの悪いソフトでなく
スパッと終了するソフトを作るような心がけって事だろうな。

59 :
まあ、関数内でnewしたFSOの変数にNothingを代入するのはやりすぎだわな。
何かの強迫観念か。

60 :
FSOとて例外ではなかろう

61 :
.netのプログラムでもNothingを代入してるのをたまに見かけるけど、アレって一体???

62 :
アピールじゃないかな

63 :
>>45
>どこからも参照されなくなれば早く開放される。
おまい、オブジェクトと共有DLLをごっちゃにしてないか?頭大丈夫か?

64 :
>>59
Nothingの代入がその関数の一番最後に配置するのだったらやり過ぎという感はあるけど
他はNothingを代入しているのにそこだけ代入していなかったら
コーディングミスだと思われても仕方ないだろう。
あるいはコメントに、「ここは関数の最後なのでNothingを代入しても意味が無いので代入しません」
とでも書くか?

65 :
使い終わったらNothingを代入するという社内コーディング規則を決めたのなら徹底すべき。

66 :
>>64
君って、mainの最後でfreeする派?

67 :
Nothing代入しろ派の人達は、C++のスマートポインタなんか気持ち悪くて使えないでしょうね。

68 :
Nothing代入しろって奴は、当然
string_value = vbNullString
variant_value = Empty
もやってんだろうな?

69 :
>>68
その発想はなかったわ

70 :
>>68
.net 小僧は i = Nothing とかやってそうで恐いわwww

71 :
>>68
次元が違うだろ
精神病?

72 :
mainの最後でfreeとかC++のスマートポインタとか引用する奴はたぶん病気。
空気脳病。

73 :
ここには魔界の仮面弁士はいないの?

74 :
>>72
freeはともかく、smart pointerはわかるよ。
nothing代入派は、生ポつかって早くdeleteしたいんだろ?

75 :
「Nothingを代入するのはお作法です」←思考停止

76 :
>>68
メモリ解放と関係なくね?

77 :
>>76
StringやVariantに値を代入したら、メモリが確保されるのだが。

78 :
mk:@MSITStore:C:\Program%20Files\Microsoft%20Visual%20Studio\MSDN98\98VS\1041\vbenlr98.chm::/HTML/vadatvariant.htm
Empty 値は、初期化されていない (初期値が代入されていない) バリアント型の変数を示します。
Empty 値を含むバリアント型の変数は、数値データと共に使われるときは 0、文字列データと共に使われるときは長さ 0 の文字列 ("") として扱われます。
Empty 値をNull 値と混同しないでください。Null 値は、バリアント型変数に有効なデータが意図的に格納されていないことを示します。

79 :
>>74
生ポとか関係のない話題を引き合いに出してまで
自分の意見を通そうとするかふつう?

80 :
Sub Foo(x As integer, y As integer)
 x = 5 ' コードは、
     ' Main のローカル変数である z を
  y = 6 ' x と y の 2 とおりの名前で参照します。
End Sub
Sub Main
  Dim z As integer
  Foo z,z
End Sub

81 :
>>78
何を言いたいのかわからないが、Emptyを代入すればVariantに代入されていたものが解放される。
vbNullを代入すると、「vbNull」という値が代入され、その分のメモリが使われる。
>>79
生ポ=生のポインタ

82 :
まあそういうのどうでもいいよ。
それより、以前のスレでNothingを代入しないとメモリリーク起こすと言ってた奴はどこいったんだ?
早く根拠示してくれよ。

83 :
気になってググったら、一番上にヒットしてたやつにこんな書き込みが。
> 魔界の仮面弁士 2004/05/29(土) 14:33:26
> Nothingすればリークしない、という物でもありませんし、逆に
> Nothingしなければリークする、というわけでもありません。
魔界の仮面弁士というのはこいつかwww

84 :
VB6でサーバアプリ作るんなら、念のためNothingを代入してやってもいいって感じ

85 :
Nothingを代入しないのは時間で微分した場合は一種のメモリーリークだろ?
単位次元をかえてみろっつーの。物理が分からんプログラマーは話していて疲れる。

86 :
>>85
それだとオブジェクトをSetすること自体がメモリーリークになってしまうけど?

87 :
>>83
>魔界の仮面弁士というのはこいつかwww
少なくともオマエよりはデキル感じが汁!

88 :
まあNothingして早めにメモリを解放して、リソースの無駄遣いにならないように
するのはわかったが、ダラダラと糞長いプロシージャを書かなければいいって
事だよな。適切に機能ごとにプロシージャに分けて、スコープ最小になるように。

89 :
>>88
そんな事は百も承知だけど、無理な納期設定で
じっくり考える時間もない中で仕上げなければならない現実。
もうかれこれ5年やってるけど、いままで自分が満足するものを作ったことがない。
納期を無視すればいくらでも自己満足なコードは書けるだろうな。
プログラミングを趣味でやれる人たちと俺とでは生きてるステージが違うのかも。

90 :
仕事も趣味もプログラミングだから頭がヤバい

91 :
重箱の隅を突っつくヤツはVB6の作法に合わないから反省しろよ

92 :
重箱じゃないから騒がれる。ダンボール箱に住む浮浪者に暴力を振るうって感じ。

93 :
>>47
> オブジェクトを使用する場合、特に初心者に向けての忠告であれば
> 宣言1回、SET1回で終わるのが大抵なのだから
> あえて複数SETで多参照とか前提にして
> 簡単な事をあえて難しく見せることに意味はないよね。
関数を使わない初心者?
さすがにそんな初心者は想定してなかったなw
VBの構文忘れたから適当に書くけど
sub func1
 Dim a As Cls
 c = new Cls
 func2(c)
 set c = Nothing '最後の参照がなくなった時点でTerminateが発生する
end sub
sub func2(c)
 func3(c)
 set c = Nothing ' Nothing代入してもTerminateは発生しない
end sub
sub func3(c)
 func4(c)
 set c = Nothing ' Nothing代入してもTerminateは発生しない
end sub

94 :
>>66
> 君って、mainの最後でfreeする派?
mainとfreeは話が違うだろ。
Nothingを代入する行為は
”全く意味が無い”ことが多いってこと。
関数の最後の直前にNothing入れたって意味ないよ。
閉じるのを早くするためにNothingを早くすると言っている人がいるが、
それをしたいのであればグローバル変数を使わなくするだけでいい。
そうすれば、「一つの関数」の中で中盤に開放されるか
後半に開放されるかの違いでしかないだろ。

95 :
Nothingを代入 = スコープが抜けて自動的に変数削除(GC)
スコープを小さくしておけば、
どっちみちスコープが終わった時に
自動的にNothing代入されるよ。
だからこれ(自動的なNothing代入)も
Nothing代入の一つと考えればいい。
ということで俺はNothing代入を書かずに
スコープを小さくして自動的なNothing代入に任せる派

96 :
>>89
自分の技術力の無さを
納期のせいにするな。

97 :
>スコープを小さくして自動的なNothing代入に任せる派
必ずしも踏襲できんだろうが。出来ないケースの方が圧倒的に多いだろうし。Rアホ。

98 :
>>96
技術力と任される仕事の納期とどんな関係があるとでも?
これだからアマチュアプログラマは困る。
先日3日で図書館のライブラリ管理システムを構築しろと言われたわ。
プログラム組むだけならまだしもDB設計やLAN構築まで3日以内に完了せよだとか。
これ、アシスタント女性一名でやれっつーんだから。うちの会社は。

99 :
>>93
VBの構文忘れたという前置きがあねれば
どんだけ未熟なVBプログラマ化と小一時間バカにするところだった。
良かったな。

100read 1read
1read 100read
TOP カテ一覧 スレ一覧 2ch元 削除依頼
【GUI】wxWidgets(旧wxWindows) その5【サイザー】 (507)
VBプログラマ質問スレ(Ver.6.0 まで) part60 (631)
C++相談室 part98 (570)
小学生プログラマだけど質問ある (248)
DarkBASIC (456)
iPhone iPad iOSプログラミング Part1 (596)
--log9.info------------------
2011冬の新作アニメ これだけ見とけ!! (432)
あの日見た花の名前を僕達はまだ知らない。 (713)
快盗天使ツインエンジェル TVアニメ化決定! (456)
コードギアス第3期〜真紅のナオト〜放送決定 (480)
さくら荘のペットな彼女 (463)
Girls'Work -ガールズワーク- アニメ化 (233)
キングダム (423)
猫神やおよろず  【一よろず】 (761)
トランスフォーマーアニメイテッド (910)
【ノイタミナ】フラクタル【ヤマカン岡田東】 (826)
BLACK★ROCK SHOOTER ブラックロックシューター (639)
【アニメ化】黄昏乙女×アムネジア (855)
魔R秘剣帖 TVアニメ化決定! (265)
HIGH SCORE (932)
だから僕は、Hができない。 (217)
TARI TARI 第2小節 (395)
--log55.com------------------
【おっとり癒しの】辻梨恵応援スレ9【寺娘】
キャロウェイ-VER1.5
キャロウェイスレ@異次元
三浦桃香ちゃんを応援するスレ ★16(IDあり)
【初優勝】 柏原明日架 part8 【神ボディ】
【2chの】裏拳追放2【ゴミ】
【まったり】前田陽子応援スレ5【マイペース】
【石c&#23159;】セキ ユウティン 3【石c莉】