2ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

古代VBプログラマ質問スレ(Ver.6.0 まで) part65 [転載禁止]©2ch.net

1 :デフォルトの名無しさん:2015/08/30(日) 19:25:35.12 ID:ZYoWCo0d
ここは古代に使われていた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/

前スレ VBプログラマ質問スレ(Ver.6.0 まで) part64
http://peace.2ch.net/test/read.cgi/tech/1393069842/

※「まず自分で調べる」クセを身につけよう。

2 :片山博文MZ ◆T6xkBnTXz7B0 :2015/08/30(日) 20:13:09.53 ID:bYlp1Mb/
古代かいw
もっと古いのを使ってた俺みたいなのも居るのに!

3 :デフォルトの名無しさん:2015/08/30(日) 22:17:15.85 ID:yXyH/sb5
Virtual Box?

4 :デフォルトの名無しさん:2015/08/31(月) 18:37:05.24 ID:rivrU0JW
古代の言語なんだろうけど、全然使いこなしていないんだよな(w)

5 :デフォルトの名無しさん:2015/08/31(月) 19:46:36.39 ID:jP9ITZzN
いにしえの古代兵器がオーパーツであるのは
何時の時代のファンタジーも一緒だ。

6 :デフォルトの名無しさん:2015/08/31(月) 20:03:30.69 ID:rivrU0JW
>>5
ありがと。

>>全然使いこなしていないんだよな(w)
これ自分のことなんだよね。
奥が深いなと思っている。

7 :ピラフ:2015/08/31(月) 21:13:05.51 ID:wO7z46o/
>>5
オーパーツとおパンツって似てるよね。
そういう意味でもファンタジー。

8 :デフォルトの名無しさん:2015/08/31(月) 23:11:07.53 ID:Y6bhe27M
古代でBASICといえばN−BASIC辺りを指しそうなもんだけれどな

俺も歳をとったのか

9 :デフォルトの名無しさん:2015/08/31(月) 23:32:00.26 ID:jyeD3XbH
結局スレタイをどうこうしようと
VBに.NET以前のバージョンのVBが存在してることを知らない連中が紛れ込む悪寒

10 :デフォルトの名無しさん:2015/08/31(月) 23:43:15.14 ID:01hWgQ/p
そんな奴はいねえよw
VB6以前を知らないのにあえてVBを選択する奴なんかいない。
仮にいてもVBでググれば嫌でもVB6の存在を知ることになる。

11 :デフォルトの名無しさん:2015/09/01(火) 00:23:11.87 ID:wPedzAAt
ググればすぐ分かるようなことをスレに質問に来るような連中って結構いるんだぞ

12 :デフォルトの名無しさん:2015/09/01(火) 03:10:46.75 ID:ucFEbRDO
>>8
古代BASICならそうかもしれないが、
古代Visual Basicなんだから、N-BASICは当てはまらない。

13 :デフォルトの名無しさん:2015/09/01(火) 10:41:19.76 ID:+3KglVLJ
VB6を現役でコーディングしてる奴は、このスレに居るのだろうか?

14 :デフォルトの名無しさん:2015/09/01(火) 10:49:13.53 ID:xwXw9Uta
ここにいますよ
新規システムもバリバリ開発してますよ

15 :デフォルトの名無しさん:2015/09/02(水) 03:40:06.42 ID:9XthET/f
プログラマー集めて石を投げればJavaやってる奴に当たると言うくらい
Javaが横行している世の中で、VBばかりやってる奴は
相当な希少種だという話を聞いたことがある。

16 :デフォルトの名無しさん:2015/09/02(水) 04:04:12.76 ID:3K4sUF7R
Javaの公式APIドキュメントとかで日本語版が用意されているのはJavaのメインの顧客は日本だからか?
VB6がWindows10でも使えるようになったのもやはり日本がVB6のメインの顧客だから?

17 :デフォルトの名無しさん:2015/09/02(水) 10:03:25.09 ID:XnPLTkTO
C→C++→Java→VB6→VB.NETと来て、VB6がメインな俺は貴重な存在
ほんとは早いうちに.NETに移行したいけど、予算や納期がまにあわん
客もフレームワークかえたら余分な金かかるだけだろってわかってるから
動くうちは当面VB6だわ

>>16
アメリカでもVB6は現役、もし未だにVB6つかってんのが日本だけじゃとっくに切られてると思うわ

18 :デフォルトの名無しさん:2015/09/02(水) 14:54:25.69 ID:opT5h4j/
サードパーティー製のOCXとか使えなくなったりしないの?
グラフとかグリッドとかその他もろもろ。

19 :デフォルトの名無しさん:2015/09/02(水) 23:04:45.52 ID:u5IS45iw
VB6の開発ってXPでやってんの?
こわい…

20 :デフォルトの名無しさん:2015/09/03(木) 00:23:12.55 ID:+HvViDsO
>>19
とりあえず7では動いてるけど

21 :デフォルトの名無しさん:2015/09/03(木) 00:25:17.11 ID:+HvViDsO
ちなみにVB5も7の64bitで動いてるw

22 :デフォルトの名無しさん:2015/09/03(木) 07:17:08.99 ID:01Uqm8mv
俺の周りでは.netに移行してもvb6ののりでしかやってないやつばっか

23 :デフォルトの名無しさん:2015/09/03(木) 08:37:05.16 ID:+FWa6+Fk
俺は逆に.NETのノリでVB6やってる

24 :デフォルトの名無しさん:2015/09/03(木) 08:50:53.35 ID:+FWa6+Fk
名は体を表すって奴か

25 :デフォルトの名無しさん:2015/09/04(金) 10:40:10.79 ID:rDB03Y74
まだwindows2000のPC使ったコントローラが動いてて…

26 :デフォルトの名無しさん:2015/09/04(金) 10:50:38.04 ID:0PfiOP4I
うちなんかNT4のシステムが・・・VB5で・・・ううっ・・・

27 :デフォルトの名無しさん:2015/09/04(金) 13:48:19.11 ID:P30cuLvZ
DOS機のフロッピーに組んだQuickBasicシステムが調子悪いっていう問合せがきた・・
さすがに勘弁してほしい・・
中古のHDD積んでWin98とVB5で造り直してやろうかなw

28 :デフォルトの名無しさん:2015/09/05(土) 09:59:37.90 ID:d+nPX/+M
劣化させてどうする

29 :デフォルトの名無しさん:2015/09/05(土) 11:00:30.93 ID:LItP0M3y
QuickBasicは通信が出来たから
通信対戦テトリス作った記憶がある

電子専門学校行ってた俺の卒業論文代わりである

30 :デフォルトの名無しさん:2015/09/05(土) 13:11:06.99 ID:Gxkfhkbm
>>28
ISAのハード積んでるのよ、これが。
どうやらそれ自体は生きてるみたいだからデバドラの事情でその辺の時代までしか進化させられないんだよね。

31 :片山博文MZ ◆T6xkBnTXz7B0 :2015/09/05(土) 13:27:46.40 ID:Cz8/DWsg
古代ってつけるから、古いBASICの話が盛り上がってしまうではないか

32 :デフォルトの名無しさん:2015/09/05(土) 13:31:33.70 ID:o8zNmTx0
自分MSX-BASICいいすか?

33 :デフォルトの名無しさん:2015/09/05(土) 14:37:27.25 ID:IJjvRwCO
VBじゃないからだめです

34 :デフォルトの名無しさん:2015/09/05(土) 14:49:55.04 ID:6dKeptfV
古代っていうからファルコムと何か関係があるのか思った

35 :デフォルトの名無しさん:2015/09/05(土) 15:05:34.42 ID:IJjvRwCO
古代が古代がススムくん

36 :デフォルトの名無しさん:2015/09/05(土) 18:32:08.84 ID:LItP0M3y
>>34
祐三なら今、世界樹と不思議のダンジョンの音楽作ってたみたいだぞ

37 :デフォルトの名無しさん:2015/09/06(日) 09:50:20.09 ID:JSf18249
>>27
マジかw

38 :デフォルトの名無しさん:2015/09/12(土) 16:59:48.38 ID:t9wfuOfk
前スレで例外処理についてやってたみたいだけど
なるべくエラー行を特定するためにも
On Error Resume NextとErr.Clearでなんとかするって自分内で結論した
つまりエラーになる予測が立つメソッドを呼び出す時は呼び出す側が責任を持つけど
それより上の親とかは関知しない
処理が進まない致命的なエラーなら子に状態を返させて親が終了したりするけど

VBの例外機構ってネストの概念がないからOn Error Goto
とか凝ったことやろうとすると破綻する気がする

39 :デフォルトの名無しさん:2015/09/14(月) 07:24:03.22 ID:XpNdN7EG
>>38
いきなり結論覆して申し訳ないけど、そもそもエラーになる予測がつくところなら先にチェックしないか?

予測がつかない実行時エラーは中断するべきだろうから
親というよりは最上階層まで影響が出ることになるかも知れないし。

なるべくエラー行を特定したいと言うのも、どうせOn Error Resume Next使うということは
その先でエラーが起きたかどうかの分岐を入れるつもりなんでしょ?

そもそもそんな作りにするくらいの長い関数を作るつもりなのかを先に聞きたい。

40 :デフォルトの名無しさん:2015/09/14(月) 13:29:24.17 ID:B32AStzW
>>39
ファイルオープンするために、いちいちファイルの存在チェックとか、パーミッションのチェックするの?
それでOKになったとしても、誰かが排他オープンしてて、オープン失敗とかあるかもだし。

41 :デフォルトの名無しさん:2015/09/14(月) 22:17:38.65 ID:LFTlT8XD
>>40
ファイルの存在チェックくらいするだろうけどまぁいいや。

その辺を実行時エラーで捕まえるのはいいとしても、
責任?はもう少し考えた方がいいと思う。

例えば分散トランザクションとか、2度以上に渡って段階的にロールバックが必要で、
それぞれ別の階層で行われるような場合とか。

責任を与えるとしたらOnErrorが書いてあるところの責任はエラー情報の収集、
それ以外はそれぞれの処理に合わせて臨機応変になると思うよ。

42 :デフォルトの名無しさん:2015/09/15(火) 10:17:12.18 ID:SaBsU2Jv
>>41
責任について会話したつもりはないし、するつもりはない。

アトミックな動作で成功か失敗かわかるのに、わざわざ不十分で不要なエラーチェックを
事前にして、なおかつそれでOKでもさらに失敗する可能性があるようなことを勧めるのは
どうかと思っただけ。

socket.connectしてみれば、有効なネットワークI/Fが無いところから、ホスト名が解決できない、
解決はできたが接続不可、接続タイムアウト、そして予見可能なさまざまなエラーが
わかるんだが。

43 :デフォルトの名無しさん:2015/09/15(火) 11:46:03.38 ID:JvEHO3WV
>>39
> そもそもエラーになる予測がつくところなら先にチェックしないか?

実行時エラーっていうのは、先にチェックが出来ないものなんだよ。
先にチェックした所で意味が無い。(例外はある)

例えば、ファイルが有るか? を調べた後に別プロセスが消したらどうする?
データベースに接続できるか?をチェックした後に接続が切れたらどうする?
ロックかけられるか?を調べた後に別プロセスがロックしたらどうする?

先にチェックするという考えをしたら
それは間違いだと思ったほうがいい。

44 :デフォルトの名無しさん:2015/09/15(火) 11:49:07.19 ID:gSnYO4lD
VB6と関係ないプログラミング一般論で熱くなるなよ…
そもそもVB6に常識は通用しない(キリッ

45 :デフォルトの名無しさん:2015/09/16(水) 10:30:16.72 ID:mu6Nh8e2
>>43
Windowsはファイルオープン後にファイルが消される心配はない、つまりオープンでエラーチェックすればいい
データベース接続にしても、実際にコネクトだしてみて成功か失敗かで判定するから何の問題もない
先にロックされていたらロック待ちに入るだけだから何の問題もない、タイムアウトするまで気長に待てばいい
トランザクション開始後に何かエラーがおきても、とりあえずロールバックだせばいい
それにロールバック前にプロセスが死んでもTPモニタがトランザクションを回収してくれるから安心していいぞ
分散トランだろうろうがローカルトランだろうが、そこらへんは同じだ

46 :デフォルトの名無しさん:2015/09/16(水) 10:37:18.52 ID:LGFhZh75
>>45
実行時エラーを、事前にチェックで発生しないように出来はしないって話
話わかってないなら参加しないでね。

あと、そこに書いてあること、
全部間違いだから。

47 :デフォルトの名無しさん:2015/09/16(水) 10:57:59.80 ID:mu6Nh8e2
ははは、単に書いてあることが理解できなかっただけでしょ
ロックできないと実行時エラーがでるDBMSがあればお目にかかりたいわ
いろいろ糞なSymfowareでもさえそんなことしないぞ

48 :デフォルトの名無しさん:2015/09/16(水) 11:17:08.96 ID:R+VbjL5L
当たり前だけど>>46の方が正しいね。
このレベルが議論になるってプログラマ1年生かよw

前スレで例外はいちいち捕捉せず一か所でまとめて....とか言ってた奴と同レベル。

49 :デフォルトの名無しさん:2015/09/16(水) 11:56:19.64 ID:YuKIFw84
>>48
> 前スレで例外はいちいち捕捉せず一か所でまとめて....とか言ってた奴と同レベル。

同一人物じゃないの?

50 :デフォルトの名無しさん:2015/09/16(水) 13:04:52.20 ID:LGFhZh75
>>47
> ロックできないと実行時エラーがでるDBMSがあればお目にかかりたいわ

http://www.kitagawa-hanga.com/se/s_vberr.html#EJ005
> Q:実行時エラー'''-2147217900(80040e14) ロックできませんでした。
> A1:ACCESSのDBが開いていた。

それにもともとデータベースのロックとは書かれてないので
ファイルのロックの可能性もある。

51 :デフォルトの名無しさん:2015/09/16(水) 13:14:41.01 ID:LGFhZh75
実行してみなければ、実行できるかどうかわからないことがある。
ということを理解できるかどうかという壁があるんだと思うね。

外部リソースを使うようなもの。
例えばファイルとかデータベースとかは
どんな操作でも実行時エラーになる可能性がある。

例えば、大量のデータを書き込んでる途中で
ネットワークが切れたらどうするの?とか
ディスクがいっぱいになったらどうするの?とか

こういうのは書き込み前にいくらチェックした所で
問題なく処理が完了するかどうかはわからない。

52 :デフォルトの名無しさん:2015/09/16(水) 14:01:11.69 ID:YuKIFw84
なんか話がずれてきた感があるな。

そういう本当に実行してみるまでわからない場合じゃなくて、わかる場合でさえ、ほとんどの場合は
事前エラーチェックなんて不要だって話なんだが。

例えば、ファイルオープンチェック前のファイル存在チェックなんかいらないとか。
(ファイルが存在しない場合にオープンエラーになるケース)

53 :51:2015/09/16(水) 14:24:42.20 ID:jSlc/S3C
>>52
俺の定義では、ファイルのオープン前の存在チェックは
「実行するまでわからない」に含まれています。

なぜなら、存在チェックした後で
ファイルが消される可能性があるから。

実行する前にわかるものは0除算チェックとかね。

ただ重要な事はアプリを作る上では原則としてどこの行でも
実行エラーが発生するかもしれないという前提で作ること。

54 :デフォルトの名無しさん:2015/09/16(水) 16:23:38.81 ID:YuKIFw84
>>53
> 俺の定義では、ファイルのオープン前の存在チェックは
> 「実行するまでわからない」に含まれています。
俺もそうだよ。

実行する前にわかるエラーでも、事前エラーチェックが不要なケースの話をしているつもりなんだが。
同じこと何回も言ってる気がする。

55 :デフォルトの名無しさん:2015/09/16(水) 17:17:25.48 ID:mu6Nh8e2
>>51
大量書込みの場合は、書き込み処理前の空き容量チェックと
write実行時の両方でエラーチェックするのが当然なんだけど
なんで事前チェックが不要だと思ったのかが聞きたいな

56 :デフォルトの名無しさん:2015/09/16(水) 17:25:43.66 ID:YuKIFw84
>>55
どうでもいいけど、ファイルを読み込みオープンする前にファイルの存在チェックはするの?

57 :デフォルトの名無しさん:2015/09/16(水) 18:52:08.86 ID:jSlc/S3C
>>55
事前チェックは単なるユーザビリティ用。

例えば空き容量チェックをすることで
30分たってからエラーになるよりも
その前にわかったほうが、ユーザビリティは良い。

だがこれはディスクに空き容量があることの保証にはならない。
なぜならチェックした後に、他のプロセスが書き込んで
チェックした時よりも減ることがあるからだ。

だから事前チェックは「空き容量があるだろうチェック」であり
そのチェックを通っても、空き容量がないというエラーが発生することがある。

簡潔に言うと
・事前チェック=必ずしも必要ではないう(追加でやっても良い)
・実行時エラー=必ず必要

58 :デフォルトの名無しさん:2015/09/16(水) 18:53:59.05 ID:jSlc/S3C
>>54
> 実行する前にわかるエラーでも、事前エラーチェックが不要なケースの話をしているつもりなんだが。

俺は最初から、事前エラーチェックはしなくても良い
してもいいが、事前にチェックした項目でも、エラーが発生することがある
って言ってるんだが?

59 :デフォルトの名無しさん:2015/09/17(木) 09:08:13.33 ID:2NbfNrXr
>>56
ファイルリストボックスに列挙されてるなければ無い、という事じゃなくて?

60 :デフォルトの名無しさん:2015/09/17(木) 09:08:47.80 ID:dsY8MwhC
>>56
するときもあるし、しないときもある

するときっていうのは、>>57のいっているようなユーザビリティのためってことが多い
処理が何フェーズかに分かれていて、それぞれ処理に数分かかり使うファイルが異なる
ような場合だと、あらかじめ各フェーズで使用するファイルやその他処理実行に必要な
要件を満たしているかを、すべてチェックしてから最初のフェーズを開始したほうが
何十分も処理したあげく途中で失敗してユーザを落胆(もしくは激怒)させる可能性が低くなる

しないときは、それが必要のない時とか、そんなプログラム書くのが面倒くさくなった時も含まれる

61 :デフォルトの名無しさん:2015/09/17(木) 09:34:15.59 ID:A4RYA4mG
なんで、あんたらVB6と無関係な話を延々とし続けるんだ?

62 :デフォルトの名無しさん:2015/09/17(木) 14:53:34.39 ID:sALNH7F9
>>59
> ファイルリストボックスに列挙されてるなければ無い、という事じゃなくて?

ファイルリストボックスに列挙されてなくても、ファイルがある時はあるし、
列挙されていても、ファイルがないときもある。

63 :デフォルトの名無しさん:2015/09/18(金) 14:02:13.93 ID:xE1yl799
VBだとフォーム上のコントロールにデータをもたせると比較的簡単にプログラムが組めてしまうから
逆にプログラマがバカなまま育たないのかも知れないな
最初からVBしかやってない人と、ほかの言語からVBに来た人では、
データ構造とかエラーチェックに対する考え方がまるで違う気がする

64 :デフォルトの名無しさん:2015/09/18(金) 14:11:59.86 ID:F1j6zTfg
>>63
> 最初からVBしかやってない人と、ほかの言語からVBに来た人では、
> データ構造とかエラーチェックに対する考え方がまるで違う気がする
だから何なの?

65 :デフォルトの名無しさん:2015/09/18(金) 14:14:55.06 ID:tAuaYMjW
多分、自分がVBしかやっていないから他の言語から来た人を余計な事をする
馬鹿だと言いたいんじゃない?

66 :デフォルトの名無しさん:2015/09/18(金) 16:27:05.77 ID:+Yui8Vmg
ほかの言語って具体的に何を想定してるんだろうな
VB時代の言語でVBと同程度のRADツールで比べてもそう言う結論になるのかどうか

67 :デフォルトの名無しさん:2015/09/18(金) 20:05:45.12 ID:5egfmsiH
delphi…
OSSでこういうのができないものか

68 :デフォルトの名無しさん:2015/09/24(木) 09:46:51.27 ID:3J9aoq5f
どこからVBと同程度って前提が出てきたんだろう

69 :デフォルトの名無しさん:2015/09/26(土) 23:28:23.77 ID:XoMNa86j
>>68
VBと比較するのに同程度じゃないものとくらべる方がおかしくないか?

たとえばアセンブラとVBで
>データ構造とかエラーチェックに対する考え方がまるで違う
って言われても、そりゃそうだとしか思わんが

70 :デフォルトの名無しさん:2015/10/08(木) 23:12:16.70 ID:wfWZ3kAO
なんかWIN7でVB6のIDEが動かなくなったんだけど
MSパッチでもきたのかな。

以下のメッセージが出て

コンポーネント'ComDlg32.OCX'、またはその依存関係のひとつが適切に
登録されていません。ファイルが存在しないか、あるいは不正です。
Continue?

以下コマンドを管理者権限で実行しても改善せず。
C:\Windows\regtlib.exe C:\Windows\system32\msdatsrc.tlb

71 :デフォルトの名無しさん:2015/10/08(木) 23:16:36.76 ID:wfWZ3kAO
UACを無効にしても改善されず。分からん。

72 :デフォルトの名無しさん:2015/10/08(木) 23:37:40.98 ID:wfWZ3kAO
自己解決。
regsvr32 /u c:\windows\syswow64\comdlg32.ocx
regsvr32 c:\windows\syswow64\comdlg32.ocx

73 :デフォルトの名無しさん:2015/10/10(土) 11:49:26.74 ID:ynFuK4cm
Windows10でもVB6のIDE動くの?

74 :デフォルトの名無しさん:2015/10/10(土) 23:52:40.60 ID:BWs8hoM+
ウゴイタヨ

75 :デフォルトの名無しさん:2015/10/12(月) 01:25:36.87 ID:7+y2d7JP
>>74
マジデ

76 :デフォルトの名無しさん:2015/10/14(水) 21:40:19.96 ID:jcVsCqII
Windows 7/ Windows Server 2008 R2 以降のOS とStrConv関数 – VBStrConv.Wideを使用した文字変換について
http://blogs.msdn.com/b/jpvsblog/archive/2015/10/13/windows-windows-server-2008-r2-os-strconv-vbstrconv-wide.aspx

77 :デフォルトの名無しさん:2015/10/16(金) 22:02:34.27 ID:OazOAfe5
過疎化ってるからチラ裏でも良いよね?
>>27だけど、Win2000とVB6で作っちゃったよw
全てにおいで懐かしかったな。
久々のVBいじりだったけど楽しかった。

78 :デフォルトの名無しさん:2015/10/17(土) 07:46:54.00 ID:HFus6TsS
そのWin2kはライセンスされてるのかね?

アクティベーションがない時代なんだよね
おれも知り合いの中国人に円盤もらったわ

79 :デフォルトの名無しさん:2015/10/20(火) 15:35:18.80 ID:yOvVwoxq
VB6プログラマなら、Win98やNTや2Kのパッケージくらい持ってるだろ

80 :デフォルトの名無しさん:2015/10/20(火) 15:43:54.37 ID:RLC1jZn7
Win98のCDパッケージをポケットに入れて、ポンポンと叩くとあら不思議!
WinNT4.0とWin2kのCDパッケージ二つに…

なるわけないよね…

81 :デフォルトの名無しさん:2015/11/07(土) 03:30:26.17 ID:YgCrPFk4
最初のVBはWin3.1上のVB2だった
イベントドリブンが何だか分からなくて苦労したが
BASICの232C通信で使うON COM GOTOで既にあったんだよな

82 :デフォルトの名無しさん:2015/11/07(土) 11:03:27.27 ID:Lam93S6q
VB2.0は神だったけど作ってた人はdelphiに移ったんだっけ

83 :デフォルトの名無しさん:2015/11/09(月) 09:54:18.44 ID:5Q5u02uZ
VB6のIDEがWindows 10 x64に乗らん
みんなどうしてる?

84 :デフォルトの名無しさん:2015/11/09(月) 12:23:34.27 ID:G1gP56PM
>>83
VMware WorkstationのゲストにVB6のIDEが動くWindows 7を入れてその上で使っている
いずれにせよx64でVB6 IDEを使うのは問題が多い
動かんわけではないが

85 :デフォルトの名無しさん:2015/11/10(火) 00:50:07.56 ID:NzWAlnvn
うちはとりあえずVirtualBox上のXPにインストールして使ってます

86 :デフォルトの名無しさん:2015/11/10(火) 10:06:43.11 ID:kID/9aFl
>>83
VB6のインストール時に「データアクセス」のチェックボックスを外すカスタマイズをしてインストールする。
インストールが完了したら、下記2つのSPを導入する

Visual Basic 6.0 Service Pack 6ランタイム再頒布可能パッケージ
VB6.0-KB290887-X86.exe

Visual Basic 6.0 Service Pack 6 累積的な更新プログラム
VB60SP6-KB2708437-x86-JPN.msi

「データアクセス」に相当するコンポーネントはXP以降、Windows側で搭載している
(但しDAO 3.5等一部のコンポーネントは導入されない場合がある)

今更VB6を使ってるアホがいるのかと馬鹿にしていたが
先日、.netとMFCを使わず作れという案件があって使わせてもらったところ

87 :デフォルトの名無しさん:2015/11/10(火) 22:21:33.79 ID:V2gZqqX7
いまやランタイム個別インストールの要るVBはOKだったのかい

88 :デフォルトの名無しさん:2015/11/11(水) 09:11:46.76 ID:IHEQvAKm
>>87
VB6の日本ランタイムはXP以降では個別インストールは不要

?Msvbvm60.dll
?Stdole2.tlb
?Oleaut32.dll
?Olepro32.dll
?Comcat.dll
?Asycfilt.dll
?Ctl3d32.dll

但し、英語版を前提にしているので日本語を使用する場合は
vb6jp.dlのみシステムフォルダへコピー要

l


いまやと言われるが
?Msvbvm60.dll
?vb6jp.dll

89 :デフォルトの名無しさん:2015/11/11(水) 10:24:47.98 ID:UbWdT4LL
>>88
日本語版Windowsにはvb6jp.dllをプリインストールしておいて欲しいよな
そしたらEXEだけの配布であたかも動くように錯覚させられる

90 :デフォルトの名無しさん:2015/11/11(水) 19:06:08.81 ID:tetd2Xz4
>>86
ありがとー!

91 :デフォルトの名無しさん:2015/11/12(木) 09:35:45.98 ID:gJCTJ5EK
>>89
日本語の文字はイメージにして貼り付けて原寸で表示すればいい。
実際にはランタイムで動くが配布はexe一本で済むから
.netのバージョンがどうとかサイドバイサイドにしたりやめたり訳わからん
C++ライブラリやMFCのバージョン依存からも解放される

92 :デフォルトの名無しさん:2015/11/12(木) 19:55:09.34 ID:UQPi/g2N
VC6使ってmsvcrt.dllだけリンクすればどこでも動くよ的なことをVB6でやろうとしてるのかな

93 :デフォルトの名無しさん:2015/11/12(木) 20:13:06.00 ID:gJCTJ5EK
DLLの静的リンクとデフォで導入されたDLLを前提とするEXEでは意味が全然違う

94 :デフォルトの名無しさん:2015/11/12(木) 23:45:00.40 ID:UQPi/g2N
昔ボーランド製言語でランタイムごと静的リンクってやってたよな
ちょっとしたアプリすら数MBのEXEになるってやつ
あれはあれで楽だった

95 :デフォルトの名無しさん:2015/11/13(金) 09:54:26.58 ID:iH7KAiTO
悪の組織はVBとかGWーBASICでセキュリティーシステム構築しているよな

96 :デフォルトの名無しさん:2015/11/13(金) 19:54:28.33 ID:MkD35YD3
VB6で接続出来るSQL serverのバージョンは2008、2012あたりまで?

97 :デフォルトの名無しさん:2015/11/13(金) 21:18:31.36 ID:YBJ5maQh
>>96
2016もできますよ
Native Clientもまだ使えるし、驚くなかれCOMのDMOでさえDLLをコピーしてレジストすれば使えてしまうのですわん!

98 :デフォルトの名無しさん:2015/11/13(金) 21:19:42.18 ID:YJHyXgNe
ODBCやOLEDB経由で何でも繋がると思うけど

99 :デフォルトの名無しさん:2015/11/13(金) 21:23:08.82 ID:YBJ5maQh
サポートされない = 使えない

と考える大手企業の俺としては×

100 :デフォルトの名無しさん:2015/11/13(金) 21:44:09.41 ID:N4+90VzT
>>97 :デフォルトの名無しさん:2015/11/13(金) 21:18:31.36 ID:YBJ5maQh
>>2016もできますよ
>>Native Clientもまだ使えるし、驚くなかれCOMのDMOでさえDLLをコピーしてレジストすれば使えてしまうのですわん!
>>
>>99 :デフォルトの名無しさん:2015/11/13(金) 21:23:08.82 ID:YBJ5maQh
>>サポートされない = 使えない
>>
>>と考える大手企業の俺としては×

ID:YBJ5maQhさんは何が言いたいんだべか

101 :デフォルトの名無しさん:2015/11/14(土) 02:16:33.31 ID:dyEwIjIs
>>97
有り難う御座います!
ideも10にのるようだし、まだ何とか使えそうな感じですね

102 :デフォルトの名無しさん:2015/11/14(土) 09:25:54.73 ID:+wIhxTPb
vb6はwindowsを使い続けてもらうアイテムとしては
ほんと優秀だなw

103 :デフォルトの名無しさん:2015/11/14(土) 10:39:09.15 ID:krijCelQ
>>100
サポートされないとアナウンスされても実は使えることを発見した喜びと
大手企業の従業員で変なことはできない自分の立場との狭間で
気がおかしくなってしまった社会人だろうが

104 :デフォルトの名無しさん:2015/11/14(土) 10:41:51.66 ID:krijCelQ
>>102
最近は若者のパソコン離れが進行していて、プログラマはnetからスタートする人が多い
旧称VB.netが扱える人にVB6のコーディングをお願いした、ら絶対無理と断られた
VB6でコーディングできる人は希少になってる

105 :デフォルトの名無しさん:2015/11/14(土) 10:44:34.07 ID:C+VQebwd
>>104
Excel とかでVBAでマクロ組んでる人を連れてくれば非常に短時間で習得しますよ。
ただ、最近はVBAの方が高機能になっているので、「なに?これできないの?だせー」
とか生意気なことを言われてもそこは我慢な。

106 :デフォルトの名無しさん:2015/11/14(土) 11:34:50.38 ID:qlPwFN7b
へーそうなんだ 素直にVB6を継承したVB7を出さないマイクロソフト ダせぇ〜
CPUの進化の方向性の予測をマイクロソフトは完全に見誤ったな

107 :デフォルトの名無しさん:2015/11/14(土) 20:45:42.26 ID:Av6tUUxK
今はVBAのが高性能なのか

108 :デフォルトの名無しさん:2015/11/14(土) 21:44:03.09 ID:YdrOLc06
高性能じゃなくて高機能だって言ってるようだが
VBAにVB6以降で追加された機能なんてそんなにあったか

109 :デフォルトの名無しさん:2015/11/14(土) 21:53:26.29 ID:FdVmpUvz
>VBAにVB6以降で追加された機能なんてそんなにあったか

連想配列、インタフェース継承ではない実装継承、stdcallだけでなくcdecl呼び出しのDLLも扱える
その他いろいろあるが、肝心のビルドはできないというお粗末な結果に・・・

110 :デフォルトの名無しさん:2015/11/15(日) 07:11:27.52 ID:ImZpldRH
>>109
え?
VBAっていつから普通に継承が使えるようになったの?

111 :デフォルトの名無しさん:2015/11/16(月) 19:16:51.07 ID:X7VYS5RQ
VBAに連想配列もなかったはずだけどなぁ
ScriptingはVBAの機能じゃないし

112 :デフォルトの名無しさん:2015/11/16(月) 19:48:04.06 ID:fpzEUe1a
Windows3.1ですら現役なのだからVB6の現役引退なんて何十年後になるやら・・・


パリの空港で一時的に離着陸できない事態 原因はWindows 3.1搭載システムの障害
http://nlab.itmedia.co.jp/nl/articles/1511/16/news087.html

113 :デフォルトの名無しさん:2015/11/16(月) 20:17:31.92 ID:trSGc+oL
>>111
元は無かったけど今はあるみたい

114 :デフォルトの名無しさん:2015/11/16(月) 20:20:59.23 ID:z9tuJ+qY
検索してもScriptingしかでない
なんてキーワードなん?

115 :デフォルトの名無しさん:2015/11/16(月) 20:28:49.62 ID:Qla6NSIC
言葉遣いの機微からして魔界の仮面弁士さんだと思うけど
さすがとしか言えない

116 :デフォルトの名無しさん:2015/11/18(水) 14:23:58.30 ID:F5fk9EZV
>>115
魔界の仮面弁士さんが女性だって知らないだろ?

117 :デフォルトの名無しさん:2015/11/18(水) 18:03:30.15 ID:ATW6acPX
>>116
知ってるし会ったこともあるし

118 :デフォルトの名無しさん:2015/11/18(水) 18:10:04.89 ID:FZwVjyKL
>>116
ググったら、おっさんなんですが・・・
https://mvp.microsoft.com/ja-jp/PublicProfile/8907?fullName=Masashi%20Ohsawa

119 :デフォルトの名無しさん:2015/11/18(水) 18:55:36.28 ID:4OAuBkhO
きっと魔界の仮面弁士さんっていっぱいいるんだよ

120 :デフォルトの名無しさん:2015/11/18(水) 18:59:06.55 ID:qQMjOk3j
VB6で作っていた業務プログラムがWindows 10で動かなくなりました。
スキルがVB6で止まっています。
VB .Net以降も試しましたがチンプンカンプンです。
他にDelphiでも多少プログラムを作ったことがあります。
こんな私はどのような環境に移行した方がいいでしょうか?

121 :デフォルトの名無しさん:2015/11/18(水) 19:01:42.95 ID:4OAuBkhO
>>120
NーBASIC

122 :デフォルトの名無しさん:2015/11/18(水) 21:15:27.74 ID:ZfX3YHRj
移行するまでもない
10に仮想マシン入れてその中で飼えばいつまでも使えるよ

123 :デフォルトの名無しさん:2015/11/18(水) 21:54:45.97 ID:lLDwuORZ
みんな、魔界の仮面弁士は、

恥ずかしい名前だからという理由で覚えてるだろ?w

124 :デフォルトの名無しさん:2015/11/18(水) 22:50:00.77 ID:Vd3xoABa
仮想マシン上で動かすWindowsはどうやって確保するのさ
Virtual PCなんかはUSBとか認識しないとかじゃなかったっけ?

125 :デフォルトの名無しさん:2015/11/19(木) 06:57:06.60 ID:UejfSBt7
VirtualBoxとやらはUSBもかなり使えるらしいが。
試してないけど。

126 :デフォルトの名無しさん:2015/11/19(木) 10:10:43.15 ID:P/mVQIZW
>>124
MSDNでダウンロード出来るでしょ

127 :デフォルトの名無しさん:2015/11/19(木) 10:18:06.22 ID:cR+0Vq91
>>121
VB6ユーザーがスキルそのままで移行するBASICって何がいいんだろう。

128 :デフォルトの名無しさん:2015/11/19(木) 11:18:18.08 ID:gnlHtmyF
>>127
REALbasicから変貌を遂げたXojo(ゾージョー)がおすすめ
https://xojo.grapecity.com/

試しに作った婚活アプリがiOSとAndoroidで動いたのは圧巻だったわ

129 :デフォルトの名無しさん:2015/11/19(木) 18:54:37.04 ID:UejfSBt7
>>126

Virtual PCは、Win8以降では使えないのでは?

130 :デフォルトの名無しさん:2015/11/19(木) 19:37:34.14 ID:WeTSdtYk
>>120
Delphiやればいいんじゃね?
Delphiはスマホアプリも作れるしWindows10アプリも作れるし今でも現役な言語だよ!


https://www.embarcadero.com/jp/products/delphi

131 :デフォルトの名無しさん:2015/11/19(木) 19:42:10.60 ID:d1cQb6jF
>>128
なんかこれ良さそう。
まさにVB6ユーザーの移行先?
RealBasicとの関係はどんな関係?

132 :デフォルトの名無しさん:2015/11/19(木) 19:58:21.89 ID:WeTSdtYk
REALbasic作ってたReal Software社が社名と製品名をXojoに変えただけ
Xojoの日本での代理販売会社はグレープシティ株式会社

133 :デフォルトの名無しさん:2015/11/19(木) 20:29:51.26 ID:gnlHtmyF
グレープシティ株式会社と聞いてうさん臭さが・・・
やはり.netがスケーラビリティを拡大してくれることに期待して
MSと心中する覚悟で行ったほうが良いかも

134 :デフォルトの名無しさん:2015/11/19(木) 21:55:27.53 ID:d1cQb6jF
>>132
そうなら、REALbasicの不安定さ、バグの多さはそのままな感じ?
それとも別物になったのかなぁ〜?

135 :デフォルトの名無しさん:2015/11/19(木) 23:18:00.77 ID:1IPcJlUL
>>120
さわってれば似たような開発方法なんで分かって来るはずだよ
俺の周りのやつでもオブジェクト指向とかしらんやつがVB6ののりだけでやっていけてるぜ
がんがれ

136 :デフォルトの名無しさん:2015/11/20(金) 09:38:49.33 ID:HMTUlgMy
>>128
サイト見たらAndoroidで動くなんて書いてないんだけど。

137 :デフォルトの名無しさん:2015/11/20(金) 11:35:25.10 ID:mOnmD+mx
>>135
オブジェクト指向は韓国人が得意だと思う
慰安婦をはじめ歴史に対する願望や妄想を具現化するのが得意だからだ
オブジェクト指向の設計には「こういうのがあったらいいなぁ」という発想が大切だ
夢を夢でなく現実なものにする
そしてその現実を組み立ててスキームを作る
それこそがオブジェクト指向のキモだと思う

138 :デフォルトの名無しさん:2015/11/20(金) 12:34:49.52 ID:lor6xJHr
VBerの上のネトウヨw

139 :デフォルトの名無しさん:2015/11/20(金) 12:42:31.97 ID:ah7luC4G
右巻きとか左巻きとか関係なく純粋に韓国人はオブジェクト指向設計がうまいというだけの話だよ
日本人は誰かがやってくれると思って自分からは何もしない人が多いから

140 :デフォルトの名無しさん:2015/11/20(金) 12:44:10.12 ID:HMTUlgMy
>>139
オブジェクト指向の勘違い

141 :デフォルトの名無しさん:2015/11/20(金) 12:54:11.73 ID:ah7luC4G
Andoroidで動くんか!と目を真っ赤にしてググった情弱に言われたくない

142 :デフォルトの名無しさん:2015/11/20(金) 13:00:49.92 ID:c8pD0V9g
せめてクラス設計くらいに限定しておけば?

143 :デフォルトの名無しさん:2015/11/20(金) 13:02:29.56 ID:yrSVFRay
 
 誰かおバカなこの俺にインタフェース継承と実装継承の違いを説明してくんろ!

144 :デフォルトの名無しさん:2015/11/20(金) 16:04:26.22 ID:okssdBU+
ここVB6スレだから実装継承なんて知らなくてもいいよ

145 :デフォルトの名無しさん:2015/11/20(金) 21:40:39.18 ID:yrSVFRay
たこが入ってないたこやきがインタフェース継承で
たこが入ったたこ焼きが実装継承?

146 :デフォルトの名無しさん:2015/11/20(金) 23:56:56.10 ID:b2YeFjvb
実際にたこが入ってないのはたこ焼きとは呼びません
たこが入ってる保障がなくても、実際にたこが入っていればたこ焼きと呼びます

147 :デフォルトの名無しさん:2015/11/21(土) 00:08:48.46 ID:vY02tg2U
>>145
そもそもインターフェイス継承って言葉そのものがおかしい。
実装継承って言い回しと対になってる対義語のような感じなんだろうけど。

インターフェイスは実装するものであって継承するものじゃない。
VBのキーワードもそうなってるでしょ。

148 :デフォルトの名無しさん:2015/11/21(土) 00:56:17.87 ID:ACMxKEDN
タコ焼き焼き器がインなんとか継承で
タコ焼き焼き器に具を入れて焼いた状態がタコ焼き

149 :デフォルトの名無しさん:2015/11/21(土) 06:11:13.04 ID:LF0jZM8a
状態は食えんだろうがこのタコ野郎

150 :デフォルトの名無しさん:2015/11/21(土) 08:39:38.84 ID:Jxo7K7kL
実装継承なんて依存関係がややこしくなるからインターフェイスだけにしたVB6は実は賢かった

151 :デフォルトの名無しさん:2015/11/21(土) 09:28:36.45 ID:De1i52Ig
シンプルが結局一番、ハッキリわかんだね

152 :デフォルトの名無しさん:2015/11/21(土) 12:58:45.54 ID:7glt1mA9
>>139
リアルな世界でもネトウヨするなよ。
恥ずかしいから。

153 :デフォルトの名無しさん:2015/11/21(土) 16:16:06.80 ID:/40Uqht6
フォームやユーザーコントロールでインタフェースを実装できないゴミ

154 :デフォルトの名無しさん:2015/11/21(土) 21:03:07.31 ID:UnBBZEWW
Xojo使ってみた (転記)
 最低限のコンポはひと通り揃っている
 画面は見やすい
 コードエディタがチカチカして遅い。補完も遅い。
 言語は馴染みやすい
 画面周りで冗長な部分がある(Delphiより手数が多い)
 基本無料 ビルドするときにライセンス必要
 エディタはTMemoと同程度だった
 HTML系が充実しているので、これはとてもよさげ
 
ざっとの感想
Delphiほど業務的には作れず、軽めのものをマルチプラットフォームで作る感じだった。
これからの充実に期待。

155 :デフォルトの名無しさん:2015/11/24(火) 13:09:28.19 ID:546gewgT
結局インターフェース継承が実装継承とどう違うか説明できた人は皆無というお話でしたか?

156 :デフォルトの名無しさん:2015/11/24(火) 14:38:23.27 ID:ZKXtki2f
インターフェイスてのはクラスを使う側にプロパティやメソッドの存在を約束するためのもの
継承は元となったクラスの機能を土台にして機能を追加していくためのもの
ぐらいの理解しかしてない

157 :デフォルトの名無しさん:2015/11/24(火) 15:02:11.92 ID:YjSqtNxT
>>155
そこに疑問を持つ人なんていない

158 :デフォルトの名無しさん:2015/11/24(火) 16:39:32.90 ID:546gewgT
>>156
インターフェイスと継承の違いがよくわかる説明ではありますが
肝心な実装継承とインタ−フェース継承の違いが説明されてないような気がします

159 :デフォルトの名無しさん:2015/11/24(火) 17:00:26.25 ID:R7cd0P4/
>>158
まつもと直伝 プログラミングのオキテ 第3回
http://itpro.nikkeibp.co.jp/article/COLUMN/20050915/221232/

160 :デフォルトの名無しさん:2015/11/24(火) 17:51:33.41 ID:2oLaLGnN
中身があるかないか

161 :デフォルトの名無しさん:2015/11/24(火) 18:21:33.22 ID:ZKXtki2f
>ID:546gewgT

これ以上の説明はここじゃなくてオブジェクト指向スレを探したほうがいい。
このスレでこの話題をすることにこだわる理由はある?

162 :デフォルトの名無しさん:2015/11/24(火) 21:12:41.56 ID:PlNbYIXP
>>158
そもそもインターフェース継承って何?
VBだと違うクラスの中で共通なクラスのインスタンスを生成して
プロパティやメソッドの引数や戻り値を引渡して、そのシグネチャをインターフェースに設定して多態性を持たせることを言ってる?

だとしたらそれは継承ではなく移譲(VB6では委託?)の一環で継承と同じような機能を作ったと言うだけ。

継承と決定的に違うのは、シグネチャが同じであれば元がどんなインスタンスであれ、インスタンスの中身を知らずに実装出来ると言う点。

例えばフォームのインスタンスだろうが普通のクラスのインスタンスだろうが
インターフェースに設定されたシグネチャさえ合っていれば多態性を持たせる事が出来る。

163 :デフォルトの名無しさん:2015/11/24(火) 21:32:49.45 ID:C2GeftYo
なんかめんどくせーやつがいるなぁ。

インターフェースIがある。クラスAがある。

クラスAがインターフェースIを持っていると主張する = インターフェース(を)継承(している)
その持っていると主張するインターフェースの中身を実装する = インターフェースの実装
その実装の中身が他のクラスを呼んでいるだけ = 移譲

だろうが。

インターフェースを継承しているといったとしても、その実装が移譲になるとは限らない。

164 :デフォルトの名無しさん:2015/11/24(火) 21:43:19.99 ID:VF5Nau+5
インターフェイスを継承する、という言葉使いが古臭い

165 :デフォルトの名無しさん:2015/11/24(火) 21:45:11.45 ID:XArPpnwT
それより継承や移譲をカタカナ英語にしないのはなぜかなー
インターフェースやクラスを漢字で書かないのはなぜかなー

166 :デフォルトの名無しさん:2015/11/24(火) 22:08:23.83 ID:PlNbYIXP
>>163
インターフェースは実装するものであって継承するものではないよ

167 :デフォルトの名無しさん:2015/11/24(火) 22:11:00.15 ID:PlNbYIXP
>>165
移譲はコンポジションって言うけどな。

試しにクラスやインターフェースを漢字で書いて見てよ。

168 :デフォルトの名無しさん:2015/11/24(火) 22:17:13.92 ID:C2GeftYo
>>166
そうだよ?

インターフェースは実装するもの。
だけど実装はしていないけど、継承だけしている状態ってのもある。
それはコンパイルエラーではあるが、概念としてはインターフェースの継承

169 :デフォルトの名無しさん:2015/11/24(火) 22:19:44.78 ID:C2GeftYo
>>167
> 試しにクラスやインターフェースを漢字で書いて見てよ。

苦裸巣、韻断腑餌巣

170 :デフォルトの名無しさん:2015/11/24(火) 22:22:26.66 ID:C2GeftYo
>>165
それより一をカタカナ英語にしないのはなぜかなー
ゼロを漢字で書かないのはなぜかなー

171 :デフォルトの名無しさん:2015/11/24(火) 22:28:24.57 ID:PTLf/t7u
>>167
> 試しにクラスやインターフェースを漢字で書いて見てよ。

階級、界面

172 :デフォルトの名無しさん:2015/11/24(火) 22:31:20.46 ID:zh7sqiGg
インターフェースを継承したインターフェースというのはあるが

173 :デフォルトの名無しさん:2015/11/24(火) 22:41:15.38 ID:PlNbYIXP
>>172
そう言うのがあるから尚更インターフェース継承という言葉に違和感を感じるんだよなぁ

174 :デフォルトの名無しさん:2015/11/24(火) 22:46:18.86 ID:Ge1jTHPl
クラス書くときにインターフェースを指定する、とはいうが継承するとはいわないね
クラスの継承と区別できていない人の誤用じゃないかと思う。

175 :デフォルトの名無しさん:2015/11/24(火) 23:15:03.71 ID:C2GeftYo
インターフェースを継承して・・・
それからインターフェースを実装する。

>>172みたいなのは、
インターフェースを継承して・・・
以上


インターフェースを継承する部分のコードは
どちらも同じ書き方をするはずだ。 👀
Rock54: Caution(BBR-MD5:0be15ced7fbdb9fdb4d0ce1929c1b82f)


176 :デフォルトの名無しさん:2015/11/25(水) 00:31:36.90 ID:1iBTFFHS
C++はインターフェースが無いから

177 :デフォルトの名無しさん:2015/11/25(水) 08:16:28.26 ID:Wb60PP31
とりあえず「インターフェイスを継承して」さんにはVB6のMSDNを熟読されることをおすすめします。

それと>>172はVB6では不可能です。

以上

178 :デフォルトの名無しさん:2015/11/25(水) 10:14:53.34 ID:tpCBhke/
ここまで説明下手の連中が集まるとは驚きだ
インターフェース継承という言葉自体がおかしいとか逃げ口実まで出る始末
そんなんでは後輩がついてきませんよ

179 :デフォルトの名無しさん:2015/11/25(水) 10:33:37.74 ID:8iY9CP3j
>>166
それ、個人の感想ですよね?

180 :デフォルトの名無しさん:2015/11/25(水) 10:36:31.58 ID:3PnF5u+J
これだけ丁寧に説明されておいて逃げ口上だと理解する人にどうしろと?

181 :デフォルトの名無しさん:2015/11/25(水) 10:45:49.66 ID:Wb60PP31
>>178

教えを乞う態度ではないなw

182 :デフォルトの名無しさん:2015/11/25(水) 10:49:35.00 ID:8iY9CP3j
>>167
ん?
移譲はdelegationじゃないの?
compositionはdelegationの手段。

183 :デフォルトの名無しさん:2015/11/25(水) 11:05:09.32 ID:89c/isfJ
考え方が逆だよ

同じインターフェースを持つ場合に継承する

まずはこれを理解しないとね

184 :デフォルトの名無しさん:2015/11/25(水) 11:15:59.49 ID:C5/GRR/j
やくざの親分が基本クラスで子分が派生クラスと考えた場合
親分はどの子分にも同じ言い方で指示しても子分は指示通り正しく動く
親分でないやくざが子分に指示しても子分は親分の指示でないから意を解せず動かない
このとき、親分と子分の間の意思疎通のルールがインターフェースに相当する
継承がインタフェースか実装かは親分と子分との関係によって決まる
親分よりも保身が第一と考える子分ならインタフェース継承
親分のためなら命を張れる子分の場合は実装継承

185 :デフォルトの名無しさん:2015/11/25(水) 14:54:47.36 ID:gbRXEv5b
VB6ユーザーの俺にはチンプンカンプンなので、分かる内容に変えてください。

186 :デフォルトの名無しさん:2015/11/25(水) 16:40:04.65 ID:C5/GRR/j
>>185
気に入った女の子と仲良くなりたいときに、直接女の子にアプローチするのと
その女の子を知ってる人に間に入ってもらって紹介してもらうのと
どっちが気が楽でしかも成功率が高いと思う?

この場合、間に入ってもらう人が基本クラスに相当し、女の子が派生クラスに相当する
その間に入ってもらう人(基本クラス)が多くの女の子(派生クラス)と知り合いであった場合
その知り合いに毎回同じ方法、手続きで違う女の子を紹介してもらうことができる

見ず知らずの女の子に声をかけてナンパする場合(継承を使わない場合)の成功率と
(基本クラス)に間に入ってもらって、同じ手続きで違う女の子にアプローチできる(派生クラス)
どちらの方が良いかはVB6ユーザーでもわかるはずだ

187 :デフォルトの名無しさん:2015/11/25(水) 20:35:43.49 ID:q6KUEPS+
結局インターフェイス継承と実装継承それぞれのの長所・短所はどうなりますか?

188 :デフォルトの名無しさん:2015/11/25(水) 20:37:11.13 ID:iOeAQZmr
インターフェイス継承はインターフェースだけを継承しているから、
インターフェースを実装しなければ使いものにならない。
実装継承は実装を継承しているから一応使える。

189 :デフォルトの名無しさん:2015/11/25(水) 21:29:34.54 ID:GSr8zJ+4
いまいちインターフェース継承ってのが何を言ってるのか分からん。

例えば、クラスAをスーパークラス、クラスBがクラスAを継承したサブクラスとしよう。

VB6のスレ的に考えれば、クラスBでクラスAのインスタンスを生成して、
そのメソッドやプロパティの引数や戻り値をクラスBから内部に持ってるクラスAに引渡していることを言っているなら、まだ分からんでも無かった。

だが>>163辺りを見ていると、インターフェースをクラスで実装すること事態を
インターフェース継承と言っているように見える。

>>163はインターフェースを介することによって、どのクラスがどのクラスを継承するようになるのか説明出来るのか?

190 :デフォルトの名無しさん:2015/11/25(水) 23:59:59.30 ID:skGhv8vg
ここは古代VBプログラマーのスレですよ。
オブジェクト指向の話は別スレでお願いします。

191 :デフォルトの名無しさん:2015/11/26(木) 00:02:22.97 ID:iXRcTmiD
xojoってフリーソフトを配布するときもライセンス買わないとだめなの?
やけに高いよね?

192 :デフォルトの名無しさん:2015/11/26(木) 01:12:12.83 ID:mB/EEuz0
消防車 is a 車
消防車 has a ハンドル

is a は継承。〜の一種。クラス

has a は、〜の機能を持つ・実装。インターフェイス。
例えば、携帯電話にカメラ機能を付けるなど、
相互に全く関係ないものをくっつける

193 :デフォルトの名無しさん:2015/11/26(木) 04:07:36.32 ID:tYgX6ymT
オブジェクト指向ってなんかしっくりこないんですけど。

194 :デフォルトの名無しさん:2015/11/26(木) 07:42:41.69 ID:DnfRVpyX
インターフェースの継承は実装継承と比較するようなものではない
・インターフェースを拡張したインターフェースを定義する場合
・インターフェースを提供する(必ずしも実装はしない)クラスなどを継承するクラスなどを定義もしくは実装する場合
の後者はインターフェース継承ではない

195 :デフォルトの名無しさん:2015/11/26(木) 07:57:16.84 ID:1P7m2Ec5
VB6のコントロール配列の特殊性はどうなの?
ハンドルも回すタイプとかステックタイプとかボタン付いてるのもあるな

196 :デフォルトの名無しさん:2015/11/26(木) 09:08:34.44 ID:3mYy768X
>>192
すごい!ここ数日の中で一番分かりやすい説明です!
本当に驚きました。ありがとうございます!

>>194
またカオスになってきた様相・・・

197 :デフォルトの名無しさん:2015/11/26(木) 09:15:44.06 ID:3mYy768X
>>192
それを >>186の説明に適用すると
紹介者はおっさんでも美しい女性でも成立するが
紹介者がおっさんの場合、紹介される女性とは完全異質なのでインターフェース継承だが
紹介者が美しい女性の場合、紹介者でありながら自分も紹介される女性として成立するから
実装継承という事になるわけだよな

198 :デフォルトの名無しさん:2015/11/26(木) 09:21:32.85 ID:3mYy768X
>>195
フォームとそれに貼り付けられた(コンテナに入った)ボタンとの関係こそインターフェース継承だと思う
VB6でのGUI開発はその本質がインターフェース継承だがあえてそれをそう呼ばず
自分が定義したクラス間で同じような世界を実現するための仕様が Inheritsなのかもしれない

199 :デフォルトの名無しさん:2015/11/26(木) 10:01:46.47 ID:wjty/3s6
ど素人ばっかかよ
移譲じゃなくて委譲だ

200 :デフォルトの名無しさん:2015/11/26(木) 10:32:21.66 ID:N4hinSZQ
インターフェースと継承の違いは基本となるインターフェースおよびクラスの特性で明白

インターフェースは各社のテレビを一元で操作できる学習リモコンのようなものだと思えばいい
使用者は各社のテレビごとに異なる操作方法を知る必要がなく、リモコンの操作方法さえ知っていれば
全社のテレビを、電源ON/OFF、チャネル切り替え、音量変更など全て同じように操作できる
その代わりに、学習リモコンは全社のテレビを操作するために必要な「インタ―フェース」を実装しなければならない
この必要なインターフェースを基本となるインターフェースにすべて実装しなければならないという制約が発生する
しかしその制約以外は何でもアリで、同じリモコンを使ってビデオデッキを操作してもいいし
各社のテレビは直接操作することも全く別のリモコンから同時に操作されることさえ許される

継承における基本クラスは各社がテレビを作る際に必要となるリファレンスモデルのようなものだ
リファレンスモデルであっても放送受信、映像表示および音声出力などテレビとしての基本機能は網羅している
各社はリファレンスモデルに色付けした自社製品としてのテレビを販売することになる
機能を追加するにしてもゼロからテレビを設計するには時間とコストがかかる
だからリファレンスモデルをそのまま拝借してそこへ追加機能を実装するスタイルが継承だ
リファレンスモデルは自分で実装する必要もなくどういう仕組みになっているか知らなくてもよい代わりに
テレビの基本性能はリファレンスモデルより劣ることもないが企業努力でそれを超えることもできない

201 :デフォルトの名無しさん:2015/11/26(木) 10:41:41.51 ID:wjty/3s6
ポエムはブログで

202 :デフォルトの名無しさん:2015/11/26(木) 10:46:30.16 ID:N4hinSZQ
偉そうに
委譲どころか萎縮しちまうな

203 :デフォルトの名無しさん:2015/11/26(木) 10:51:55.16 ID:FmwBNACx
>>200
【インターフェース継承】

TV(クラス)がもつ機能でもリモコン(インターフェース)にそれを操作する機能が用意されていなければ使えない世界

【実装継承】

TV(クラス)がもつ機能ならリモコン(クラス)にその機能を使用する手段を実装することにより自由自在に使うことができる世界

204 :デフォルトの名無しさん:2015/11/26(木) 10:55:56.32 ID:FmwBNACx
例えば、パナソニック製TVだけがガンマ補正機能をもつ場合ガンマ補正の捜査が要求されたら
パナソニック製TVを使用するように判断し操作する

205 :デフォルトの名無しさん:2015/11/26(木) 11:10:29.90 ID:RRqCWuD6
>>204
インターフェース継承でも

If USE_GAMMA_CORRECTION Then

  Set TV = PANASONIC

Else

  Set TV = SONY 

Endif

とか切り替えはできるけど、TVインターフェースにガンマ補正のためにインターフェースが実装されていないと
PANASONICクラス内のガンマ補正機能にアクセスする手段はないという事?

206 :デフォルトの名無しさん:2015/11/26(木) 11:35:32.41 ID:wjty/3s6
>>205
おいおい、大丈夫かよ
そのコードは一体どこに実装されると思ってるんだ?

207 :デフォルトの名無しさん:2015/11/26(木) 11:44:09.94 ID:HpOrPYjt
VB6ってCastあったっけ?

208 :デフォルトの名無しさん:2015/11/26(木) 12:17:17.74 ID:ihWl0nOX
あなたが苦労して取得した資格の平均最低月給ランキングは第何位?
民間や国家が認定している仕事の資格や免許。
その求人雇用市場での価値が一目瞭然で分かる。
(全求人情報平均最低月給196,500円)

ぼくらニッポンの民間・国家資格別平均最低月給ランキングはこれだ!

http://jobinjapan.jp/license/

209 :デフォルトの名無しさん:2015/11/26(木) 12:59:38.59 ID:RRqCWuD6
>>206
もちろんクラスの外側だよ
それこそがインターフェース継承の欠点でもある

210 :デフォルトの名無しさん:2015/11/26(木) 14:33:23.31 ID:wjty/3s6
理解不能だ

211 :デフォルトの名無しさん:2015/11/26(木) 14:39:59.68 ID:RRqCWuD6
無理スンナ 
ポエムでも読んでろ

212 :デフォルトの名無しさん:2015/11/26(木) 14:48:45.08 ID:wjty/3s6
>>211
一言だけ言うと、SOLIDについて調べるといいよ

213 :デフォルトの名無しさん:2015/11/26(木) 15:12:01.95 ID:UUs/uCMX
頭大丈夫か?

214 :デフォルトの名無しさん:2015/11/26(木) 15:17:29.25 ID:tFP+JHDf
VB6プログラマがインターフェイスとか背伸びすんな。
おまえらは長年寝かした秘伝のソースを改修すればいいんだよ。

215 :デフォルトの名無しさん:2015/11/26(木) 16:14:44.66 ID:uG3Gqvd0
VB6ってしばらく触っていないが、知らんうちにスゴイことになっているようだ
インターフェースの継承って一体どんなものなんだろう?
もしかするとインターフェースに抽象クラスの機能でも付いているのかな

216 :デフォルトの名無しさん:2015/11/26(木) 16:26:22.56 ID:8ZZhqZvl
抽象クラスの定義は中身が無いメソッドが少なくとも1つは含まれていることが条件だから
インターフェースは、すべて中身が無いメソッドので、抽象クラスでもあるよ。

217 :デフォルトの名無しさん:2015/11/26(木) 16:32:22.01 ID:uG3Gqvd0
概念はともかく文法的には別物扱いだよね

218 :デフォルトの名無しさん:2015/11/26(木) 16:34:08.38 ID:8ZZhqZvl
そりゃな。

C++では逆にインターフェースはなくて
抽象クラス代用してるし。

219 :デフォルトの名無しさん:2015/11/26(木) 16:53:11.94 ID:wjty/3s6
>>215
> インターフェースの継承って一体どんなものなんだろう?
本気で言ってるのかネタなのか区別つかんが、VB6/VBAでImplements IFooを
「インタフェース継承」あるいは「インタフェースを継承する」と言う人が結構いるってだけの話

あと、Javaクラスタの人にもいるみたいだ

220 :デフォルトの名無しさん:2015/11/26(木) 16:57:24.57 ID:wjty/3s6
あー、調べたら、Javaの方は本当にインタフェースの継承だった

interface A {
  void write(String str , int synchro);
}

interface B {
  String third = "逃げちゃだめだ";
}

interface C extends A , B {
  void write(String str);
}

221 :デフォルトの名無しさん:2015/11/26(木) 17:10:55.56 ID:NexaTKB1
実装継承ができない言語ならまだしも
実装継承とインタフェースの両方が使えるのに
あえてインタ^フェースを選択する人って一体?

222 :デフォルトの名無しさん:2015/11/26(木) 17:27:04.53 ID:WC2OrCem
JavaはInterfaceに実装も書けるようになってる
AbstractClassと重なる部分をマスクとして除けば、Interfaceの意味はより明確になった

223 :デフォルトの名無しさん:2015/11/26(木) 17:41:36.43 ID:wjty/3s6
>>221
一時期、実装継承は悪なんて風潮があったね
今考えると、LSP違反になりやすいとかそういうことが理由だったのかも
あと言語にもよるけど、実装継承を繰り返して継承すると、途中クラスの変更が
事実上できなくなったりするというのも理由の一つだと思う

224 :デフォルトの名無しさん:2015/11/26(木) 18:27:38.11 ID:NexaTKB1
>>223
だからと言って何でもOKのインターフェース継承がおすすめというのは何とも理解しがたい

225 :デフォルトの名無しさん:2015/11/26(木) 18:37:04.37 ID:uG3Gqvd0
>>221
そりゃ多重継承禁止だからよ

226 :デフォルトの名無しさん:2015/11/26(木) 18:39:02.80 ID:tFP+JHDf
よそのスレで相手にされないやつがここに流れてきているのか

227 :デフォルトの名無しさん:2015/11/26(木) 19:23:52.45 ID:NexaTKB1
みたいだな

228 :デフォルトの名無しさん:2015/11/27(金) 13:32:36.65 ID:R6S7u3+S
>>224
インターフェース継承がなんでもOKというのは、どういう意味?

229 :デフォルトの名無しさん:2015/11/27(金) 15:16:27.07 ID:NglB0UAN
>>228
たとえば継承10連結とかでもできるってことじゃない?

230 :デフォルトの名無しさん:2015/11/27(金) 15:36:41.66 ID:aY4C5YCH
俺みたいに、VB6のプログラムがWin8.1までは動いていたんだけど、
Win10にして動かなくなったって人いる?

231 :デフォルトの名無しさん:2015/11/27(金) 16:20:01.62 ID:D5B47dYF
インターフェースは継承とはレイヤーが違うので、概念上は制限が無いので、継承を包括し得る。C++のように継承でインタフェースを実現する事もありえるが、概念上は継承自体が制限となる。

232 :デフォルトの名無しさん:2015/11/27(金) 16:35:53.04 ID:NglB0UAN
>>230
>>83
>>86

233 :デフォルトの名無しさん:2015/11/29(日) 06:18:22.07 ID:Wjtvnm/I
用語1つで場をこんだけ混乱させてしまうオブジェクト指向ってプログラミングツールとしては最悪の部類だよね
でもそういう最悪をかき集めたものが飯の種になる矛盾を孕んでる
混乱が飯の種ってまるで火事場泥棒みたいなやつだ

234 :デフォルトの名無しさん:2015/11/29(日) 08:17:09.97 ID:pp/aKq6e
staticおじさん乙

235 :デフォルトの名無しさん:2015/11/29(日) 08:19:21.41 ID:tYzWNDRy
いやあこの話題の中で委譲の話を持ち出す人が居たのには驚いたわ
確かにインターフェースは委譲出来ないけど、ソレは抽象クラスでも同じことだからね

236 :デフォルトの名無しさん:2015/11/29(日) 09:45:04.56 ID:mstAENSD
これがニッポンの民間・国家資格別平均最低月給ランキング。

将来有望な資格も見えてくる。
資格別の求人件数と平均最低月給ランキング。
あなたの資格の市場価値が一目瞭然!

http://jobinjapan.jp/license/
プログラマーの大切な資格は正当に評価されているか確認しよう。

237 :デフォルトの名無しさん:2015/11/29(日) 18:02:30.56 ID:SlphFEdz
古代VB

そういえば、どこに消えちまったんだよ

238 :デフォルトの名無しさん:2015/11/29(日) 18:23:12.21 ID:KrqWIN7R
イスカンダル辺りじゃないかな?

239 :デフォルトの名無しさん:2015/11/30(月) 10:13:29.53 ID:aCIh3523
>>237
XP以降、VB6のランタイムはWindowsに包含されているから
EXE配布だけで実行させられるんで意外に重宝してる。
日本語表示させるためにはVBJP.dllとかが必要になるんで面倒だけど

240 :デフォルトの名無しさん:2015/11/30(月) 21:32:54.48 ID:V9s4KAVu
>>233
馬鹿が集まっているスレだからという方が10000万倍説得力があるわ

241 :デフォルトの名無しさん:2015/12/01(火) 08:25:38.23 ID:9p6YUp2c
いちまんまん

なるほど、馬鹿の集まりだわ。

242 :デフォルトの名無しさん:2015/12/01(火) 11:10:56.04 ID:Ai+9i+vY
馬鹿に遠吠えする馬鹿はさらに恥ずかしい

243 :デフォルトの名無しさん:2015/12/07(月) 11:18:05.72 ID:f02lpWL1
VB6の後継かどうか知らんがVBAを拡張する計画があるみたいね

Excelユーザーに感謝せんとな

244 :デフォルトの名無しさん:2015/12/07(月) 12:37:38.32 ID:uKCX4Zid
やっとか…

245 :デフォルトの名無しさん:2015/12/07(月) 17:24:03.74 ID:7ldc1+VM
VBAが拡張されるとしたら、おそらくECMAScriptの最新機能を
取り込んでくるだろうな。

246 :デフォルトの名無しさん:2015/12/08(火) 17:12:10.10 ID:QxmgGgsj
Roslynでやるんじゃねーの?

247 :デフォルトの名無しさん:2015/12/08(火) 23:32:19.35 ID:RI/35RNi
何の因果か未経験からVB6でのシステム保守に携わっています。
川口輝久の「Visual basic6 基礎編」は持ってるのですが
何とか理解できるようになったので
生産性向上のため見るべきサイトや本などが
あればお願いします。
漠然とした質問で申し訳ないですが
よろしくお願いします

248 :デフォルトの名無しさん:2015/12/08(火) 23:47:56.47 ID:nzVvVETE
まず知識より挫けない強い心が必要

249 :デフォルトの名無しさん:2015/12/09(水) 08:08:43.71 ID:6RFm+bN4
>>247
できるだけ他言語の新しい知識には接しないことだな。
VB6がクソに思えてしまう。

250 :デフォルトの名無しさん:2015/12/09(水) 18:08:39.82 ID:QAlRgC9p
Fowlerのリファクタリングなんて良いんじゃないかな
VB6の場合いかにして手に負えないレガシーの塊を解きほぐすかって方針で勉強したほうが役に立つだろう
この方針なら他の言語に移った時にも学んだ事は無駄にならない
方向を誤ってVB6マスターを目指しちゃうと将来的に有意義な経験がなにも残らない

251 :デフォルトの名無しさん:2015/12/09(水) 18:29:23.88 ID:h+7RpR46
CODE COMPLETE読め

252 :デフォルトの名無しさん:2015/12/09(水) 18:49:10.78 ID:jSWKuhmJ
今VBってどこで使われてるの?

253 :デフォルトの名無しさん:2015/12/09(水) 19:47:06.70 ID:FWzMSQ9Q
>>247の会社

254 :デフォルトの名無しさん:2015/12/09(水) 21:11:05.73 ID:mLmT+X7L
>>250
VB6でテスト用意してリファクタリングするのは恐ろしく時間の無駄になる予感がするんだが・・・

255 :247:2015/12/09(水) 23:34:53.11 ID:qYQrOutA
みなさんありがとうございます。
開発といいましても既存の画面の修正からなのでリファクタリングというのをやってきます

256 :デフォルトの名無しさん:2015/12/10(木) 00:25:18.37 ID:ydUpcr2T
日本の会社はリファクタリングにお金なんて出さないから注意な

257 :デフォルトの名無しさん:2015/12/10(木) 01:10:19.39 ID:Ti4G586p
リファクタリングっていうのは解析作業の一種で、
複雑になってしまったコードを解析して
その結果を反映させること。

リファクタリングに金を出さないという話であれば、
複雑になったコードを解析するのにも金を出さないって話だぞ。
そのとおりだが。


解析して、コードは修正せずに、バグと戦って、次回も解析するか、
解析して、コードを修正して、バグなく楽に修正、次回も楽になるか
の違いだ。

258 :デフォルトの名無しさん:2015/12/10(木) 03:05:39.55 ID:lzUGhUsU
質問させてください。
Windows7 pro 32bitにVB6.0Professionalを入れました。
これに適用するべき、MSが配布している更新ファイルを調べてみたのですが、

Vs6sp6B.exe
VB6.0-KB290887-X86.exe(=vbrun60sp6.exe)
VB60SP6-KB2708437-x86-JPN.msi

この3つ以外にもありますでしょうか?

259 :デフォルトの名無しさん:2015/12/10(木) 03:38:51.66 ID:2HBLgQQO
俺もそういう更新ファイルとか分からんから適当に入れた

http://pastebin.com/sSPzxYHt
リストアップしてみた(関係ないのもあるけど)

260 :デフォルトの名無しさん:2015/12/10(木) 18:54:33.37 ID:E5kFv3hh
>>247
解析ツール買ってもらえ

261 :デフォルトの名無しさん:2015/12/11(金) 07:04:04.42 ID:sydzYF+G
お前ら教えろください

同じフォーム内にあるメソッドから〜_Clickみたいなイベントを呼び出すのってアリですか?

直感的にダメな気がするんですが、なぜダメなのか説明出来ません

どちらにしても誰か理由を説明出来る人いますか?
教えてエロい人

262 :デフォルトの名無しさん:2015/12/11(金) 08:29:46.42 ID:uOwfskUE
だめな理由などなにもない

263 :デフォルトの名無しさん:2015/12/11(金) 08:37:20.53 ID:x/tmQiPi
同意

264 :デフォルトの名無しさん:2015/12/11(金) 08:53:20.67 ID:u1XVE+8e
直感的でダメって、お前の尺度で全て決まるんかいw

265 :デフォルトの名無しさん:2015/12/11(金) 08:57:09.06 ID:1J//Ejqv
イベントが発生してないのにイベントハンドラが実行されたら困惑するだろう
平日にハロウィンコスプレするようなもんだ

266 :デフォルトの名無しさん:2015/12/11(金) 09:05:05.07 ID:x/tmQiPi
どーせイベントの内容をコピペしたメソッド作ってそっちを呼ぶんだろ?
それなら最初からイベント呼んでおけ

267 :デフォルトの名無しさん:2015/12/11(金) 09:15:49.02 ID:qHZwrA+M
VB屋はこれだから嫌だね

268 :デフォルトの名無しさん:2015/12/11(金) 09:58:01.96 ID:RFBkejq5
普通はイベントの中身をメソッドにして、両方共其のメソッドを呼ぶように作るものだな

269 :デフォルトの名無しさん:2015/12/11(金) 10:28:41.26 ID:z9XcLK7w
>>267
> VB屋はこれだから嫌だね

どれのこと?
わざとらしいアンチぐらい
見分けようよw

270 :デフォルトの名無しさん:2015/12/11(金) 10:42:52.95 ID:z9XcLK7w
>>261
> 同じフォーム内にあるメソッドから〜_Clickみたいなイベントを呼び出すのってアリですか?
なし

> 直感的にダメな気がするんですが、なぜダメなのか説明出来ません
その直感は正しいよ。理由はいくつか有る。

まず、一般的にフォームというのはユーザーの入力と処理を結びつけるためにある。
結びつけるだけなのでなるべくフォームに処理は書かない。
処理はフォームとは別に(ビジネスロジック用の)クラスに分離する。
このクラスはフォーム関連コードは一切ない。これにより自動テストがしやすくなる。
このように分離するので、二つのイベントハンドラから、共通のクラスのメソッドを呼び出すので
_Clickを直接呼び出すことはない。

これが大きな理由では有るんだが、クラスを使うほどじゃない場合でも
処理はprivateメソッドに書いて、内部的には処理と結びつけるコードは分離させておいたほうがいい。

それから、もう少しわかりやすい理由として、依存関係の話がある。
_Clickというのは、ボタンだったりするわけだが、そのボタンの存在に処理が依存しているのか?ということ。
通常はボタンには依存していないだろう。仮にボタンをなくしたとしても、処理の内容は変わらないだろう?
だが、_Clickを呼ぶと処理の中にそのボタンが紛れ込んでしまってるわけだ。こういうふうに
余計なものが混ざるとUIを変更した時の影響範囲が大きくなる。

どちらにも共通することは、その責任が明確に分離されていること。単一責任の原則とも言われている。
自分の担当範囲の処理だけを行うことで、それぞれの処理がシンプルになる。
絡み合わせる必要が無いものを、絡み合わせてはいけない。

271 :デフォルトの名無しさん:2015/12/11(金) 12:14:45.33 ID:l7b7OwtU
>>261
お前さんの直感は正しくて基本的には良いことじゃないけど、まあ程度問題ではある。

良いことじゃない理由は、メソッドの名前と実態が乖離するから。
(ボタンがクリックされた時に呼ばれるはずのメソッドが、それ以外の時にも呼ばれることになる)

これは、「イベントハンドラが呼ばれるのはイベントが発生した時だけだ」という前提でコードを読んでいる
プログラマの期待を裏切ることになる。

程度問題なのは、そうは言っても十分短いコードなら上記の前提が正しくないことに
プログラマは気づくことができる。

272 :266:2015/12/11(金) 22:45:13.70 ID:qRgP3PMO
>>269
わざとらしいアンチって俺の事?

273 :デフォルトの名無しさん:2015/12/15(火) 16:46:05.07 ID:Ac3Besor
せめてインターフェース継承くらい深い議題でないと盛り上がらんな

274 :デフォルトの名無しさん:2015/12/17(木) 21:22:44.70 ID:AyksyXNq
ああ、また来てほしいな。ああいう変な奴。

275 :デフォルトの名無しさん:2015/12/25(金) 21:21:31.76 ID:5nmp/yEA
VB6からVB.NETへの移植を体系的にまとめた本は有りませんか?
最悪VBではなく他の言語でも構いません
別言語への移植に関する情報が欲しいのです

276 :デフォルトの名無しさん:2015/12/25(金) 21:33:33.29 ID:vxsX5S48
>>275
あるわけないでしょ
http://www.microsoft.com/ja-jp/dev/vbrun/default.aspx

277 :デフォルトの名無しさん:2015/12/25(金) 22:06:13.40 ID:p59n9EPz
>>275
移植元、移植先の両言語をちゃんと理解すれば移植は簡単だろう

278 :デフォルトの名無しさん:2015/12/26(土) 02:14:39.47 ID:H3roELL7
>>275
新しくはないけど
http://www.amazon.co.jp/gp/product/4798102164/ref=s9_simh_bw_p14_d0_i1?pf_rd_m=AN1VRQENFRJN5&pf_rd_s=merchandised-search-4&pf_rd_r=1RM0Y8MGQP2Y6H6E51H9&pf_rd_t=101&pf_rd_p=204601349&pf_rd_i=465392 👀
Rock54: Caution(BBR-MD5:60fb6bd37e268099e6257349e1247e68)


279 :デフォルトの名無しさん:2015/12/29(火) 19:01:46.35 ID:ZvUlOdya
sage

280 :デフォルトの名無しさん:2016/01/03(日) 22:53:19.86 ID:JzOblLuB
windows8.1をupdateしたらIDEが使えなくなった
xp 7 10では大丈夫なのに

281 :デフォルトの名無しさん:2016/01/04(月) 02:25:17.13 ID:D+zYtfMV
仮想マシンで飼えばいいんじゃね?

282 :デフォルトの名無しさん:2016/01/05(火) 17:52:56.18 ID:Hprl/h5W
Visual Basic 6.0 が扱えるスレッドについて質問させてください。
私はVB6.0で作られた業務アプリのユーザーです。
プログラミングはかじった程度ですが、訳あってこの周辺を調べています。

第4回 Background Workerで夢のマルチスレッドがついに!
ttp://www.atmarkit.co.jp/fdotnet/vb2005/vb2005_04/vb2005_04_01.html
を読むと、「VB6.0まではスレッドが使えなかった」と書いてあります。

Visual Basic .NET におけるコンポーネント作成の変更点
ttps://msdn.microsoft.com/ja-jp/library/cc437477(v=vs.71).aspx
を読むと、ActiveX に関してはスレッドが使える、旨の記載があります。

これは、「GUIコントロールに関してのみ」スレッドが使えるという解釈で良いのでしょうか?
よろしくお願いします。

283 :デフォルトの名無しさん:2016/01/05(火) 18:04:42.84 ID:LOW6VHMu
>>282
> これは、「GUIコントロールに関してのみ」スレッドが使えるという解釈で良いのでしょうか?
主語は?

あとt抜きとかやめろ

284 :デフォルトの名無しさん:2016/01/06(水) 00:20:36.17 ID:enD+OwOV
tは抜いていないと思うんだが

285 :283:2016/01/06(水) 08:22:15.82 ID:OZFZrV2d
>>

286 :282:2016/01/06(水) 08:30:51.56 ID:OZFZrV2d
操作ミス失礼。

>>283
「Visual Basic 6.0 でアプリケーションを組んだ場合、GUIコントロールでのみスレッドが扱える」
という理解で良いかどうか、ということになります。
逆に言えば、
「画面の無いコマンド(VB6.0で作れるかは分かりません)を作る場合、スレッドを使った処理を実装できない」
という理解で良いかどうか、ということになります。

287 :デフォルトの名無しさん:2016/01/06(水) 11:41:01.45 ID:vwgrq8uH
>>286
一体何が知りたくて質問してるのかしらないが、>>282で自分で答え書いてるじゃん。
「GUIコントロールでスレッドが使える」とか意味わからんし。

・VB6ではスレッドは使えない
・VB .NET以降は使える

288 :282:2016/01/06(水) 12:52:44.59 ID:OZFZrV2d
>>287
ありがとうございました。
すみません、ActiveX.exe、ActiveX.dll が良く分からなかったので「GUIコントロール」という書き方をしてしまいました。

A Thread to Visual Basic: Multi-Threading In VB5 and VB6
http://www.freevbcode.com/ShowCode.asp?ID=1287

この文献に行き着いたので時間をかけて読んでみます。

289 :デフォルトの名無しさん:2016/01/06(水) 14:04:10.34 ID:vwgrq8uH
>>288
日本語より英語の方が堪能とかじゃないなら、「VB6 ActiveX DLL」とかで検索した
日本語ページ読んだ方がいいんじゃないの?

290 :282:2016/01/06(水) 16:18:49.26 ID:OZFZrV2d
>>289
ありがとうございます。調べてみます。

291 :デフォルトの名無しさん:2016/01/06(水) 18:54:23.27 ID:lZN6Bb9n
ActiveX.EXEて非同期で動くんでそ?

292 :デフォルトの名無しさん:2016/01/06(水) 21:13:44.20 ID:E3v3yltJ
VB6でスレッドとか変態的だからメンテの関係でやめたほうがいいんでない

293 :デフォルトの名無しさん:2016/01/06(水) 23:20:20.15 ID:mlVo0bjp
素人質問で申し訳ありませんが、昨今においてWin7にVB6で組んで納品、という形態は存在するのでしょうか?

294 :デフォルトの名無しさん:2016/01/07(木) 01:08:47.02 ID:k+qX9IQq
しません

295 :デフォルトの名無しさん:2016/01/07(木) 03:59:59.40 ID:K6WPLAtH
>>286
ActiveXオブジェクトはVB以外でも作成できる
VB6ではマルチスレッドはサポートされてない
(API呼び出しで無理やりやる方法もあるけど、問題になる事もある)
これが全て。GUIとか何とか関係ない

>>291
たしかに非同期で動くけど、それ別EXEだからマルチスレッドじゃなくて別プロセスじゃね

296 :291:2016/01/07(木) 08:36:17.81 ID:kym8hbuE
>>295
やっぱそういうことですよねm(_ _)m

297 :282:2016/01/07(木) 15:30:23.13 ID:2ezK4vEQ
やっと分かりました!

1. Visual Basic 6.0 で作成する「アプリケーション」ではスレッドは使えない。

2. Visual Basic 6.0 の開発環境では、「再利用可能コンポーネント」として ActiveX(≒COM)コンポーネントが作れる
 このコンポーネントではスレッドが使用可能。
 ただし、ActiveX は単独では動作できない。他から呼ばれる専用。

ということだったんですね…。
ありがとうございました。

298 :デフォルトの名無しさん:2016/01/07(木) 17:44:14.19 ID:bnxi5i1z
>>297
つか、やりたいのは「スレッドを使う」ではなくて、非同期処理をしたいんじゃないの?
だったら、スレッドは不要。

299 :デフォルトの名無しさん:2016/05/01(日) 11:17:00.72 ID:tKi6j9CT
匿名通信(Tor、i2p等)ができるファイル共有ソフトBitComet(ビットコメット)みたいな、
BitTorrentがオープンソースで開発されています

言語は何でも大丈夫だそうなので、P2P書きたい!って人居ませんか?

Covenantの作者(Lyrise)がそういう人と話したいそうなので、よろしければツイートお願いします
https://twitter.com/Lyrise_al

ちなみにオイラはCovenantの完成が待ち遠しいプログラミングできないアスペルガーw


The Covenant Project
概要

Covenantは、純粋P2Pのファイル共有ソフトです

目的

インターネットにおける権力による抑圧を排除することが最終的な目標です。 そのためにCovenantでは、中央に依存しない、高効率で検索能力の高いファイル共有の機能をユーザーに提供します

特徴

Covenant = Bittorrent + Abstract Network + DHT + (Search = WoT + PoW)

接続は抽象化されているので、I2P, Tor, TCP, Proxy, その他を利用可能です
DHTにはKademlia + コネクションプールを使用します
UPnPによってポートを解放することができますが、Port0でも利用可能です(接続数は少なくなります)
検索リクエスト、アップロード、ダウンロードなどのすべての通信はDHT的に分散され、特定のサーバーに依存しません


300 :デフォルトの名無しさん:2016/05/14(土) 16:45:37.18 ID:0X6SbCZx
Dim a As Date

a = CDate("2016/5/14")
とか
a = DateSerial(2016, 5, 14)
で日付のみ入った状態に、後から時刻を設定するにはどうしたらいいでしょうか

DateAdd("s", h*3600 + m*60 + s, a)
だと、時刻を文字列に持っていた場合はちょっと面倒

301 :デフォルトの名無しさん:2016/05/14(土) 20:44:36.47 ID:lbKSQeRL
>>300
こんなのでいいんだろうか
a = CDate(Format(a, "yyyy/mm/dd") & " 16:45:37")

302 :デフォルトの名無しさん:2016/05/15(日) 00:17:47.00 ID:9iZwHJOb
>>301
ありがとうございます
こんなのでいけてしまいました
Dim a As Date
a = CDate("2016/1/2")
a = a & " 12:34:56"

303 :デフォルトの名無しさん:2016/05/19(木) 17:45:06.50 ID:t2yMcpW4
Windows10 64bitで昔作ったソフトを動かしてみたところ
入力系コントロール→他コントロール (テキストボックス→その他)のフォーカス移動がものすごく遅いことに気付いたんですが
原因わかりますか?

テキストボックAに「123」と入力、入力直後にテキストボックBをクリックしても1〜2秒フォーカスが移動しない。
グリッドでも同様(同一グリッド内の別セルや別グリッド)

304 :デフォルトの名無しさん:2016/05/19(木) 18:53:48.78 ID:bO7Q53f5
vb.netを使わない理由は?

305 :デフォルトの名無しさん:2016/05/20(金) 07:45:18.75 ID:xzzUF2zr
>>304
パソコンだけリプレースなので。

306 :デフォルトの名無しさん:2016/05/21(土) 14:20:22.27 ID:53HOv8Mc
VBさん25歳の誕生日おめでとう
https://blogs.msdn.microsoft.com/dotnet/2016/05/20/happy-25th-birthday-vb/

307 :デフォルトの名無しさん:2016/06/07(火) 22:57:53.12 ID:fcyHNQmx
VBももうそんな歳かぁ

308 :sage:2016/06/07(火) 23:24:32.13 ID:Ap8KFN02
https://www.youtube.com/watch?v=SDaMdk0VWV4

309 :デフォルトの名無しさん:2016/06/30(木) 09:57:06.03 ID:j4y3K9f+
>>303
当方ではそんな現象でないですけど

310 :デフォルトの名無しさん:2016/09/07(水) 04:03:07.30 ID:5oBV5n5N
ドラッグ&ドロップして、パスなしのファイル名だけ取得するにはどうしたらよい?
↓だとフルパスで取得してしまう

Private Sub TextBox1_DragEnter(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles TextBox1.DragEnter

'ドラッグされている内容が文字列型に変換可能な場合
If e.Data.GetDataPresent(DataFormats.FileDrop) Then
'コピーを許可するようにドラッグ元に通知する
e.Effect = DragDropEffects.Copy
End If

End Sub

Private Sub TextBox1_DragDrop(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles TextBox1.DragDrop

'ドロップされた内容を表示する
TextBox1.Text = e.Data.GetData(DataFormats.FileDrop)(0)

End Sub

311 :デフォルトの名無しさん:2016/09/07(水) 05:33:42.80 ID:8+k+fXBx
>>310

フルパスからファイル名抜き出すってのじゃいかんの?

312 :デフォルトの名無しさん:2016/09/07(水) 05:46:01.84 ID:5oBV5n5N
円マークで分割して最後を取得みたいに?
最悪それでもいいんだけどVBさんならちょっとしたオプションで出来るかなと思って

313 :デフォルトの名無しさん:2016/09/07(水) 07:01:23.61 ID:5oBV5n5N
>>311
探しても見つからなかったから分割してやった。レスありがとう

314 :デフォルトの名無しさん:2016/09/17(土) 08:55:04.29 ID:ORvkGosz
fso.GetFileName(フルパス)

315 :デフォルトの名無しさん:2016/10/05(水) 18:51:53.10 ID:CThI016C
プログラム保存し忘れたんだけど復活させる方法ありますか?
ソースファイル単位では保存してます

316 :デフォルトの名無しさん:2016/10/05(水) 21:44:36.40 ID:JiyI3+0P
ありますん

317 :デフォルトの名無しさん:2016/10/13(木) 17:49:35.76 ID:Xl1X+Pbm
>>295
マルチスレッドと別プロセスって実際どんだけ違うものなのかな?

318 :デフォルトの名無しさん:2016/10/13(木) 20:57:13.55 ID:iSzZT/Mz
>>317
プロセスが別=メモリ空間が別,別プロセスになると切り替えにコストが多く発生する

319 :デフォルトの名無しさん:2016/10/16(日) 17:22:47.11 ID:dK/+e+o+
プロセス単位だとリソースをいくらリークさせても終わった時点でOSが面倒見てくれる
スレッドは自分で管理しないとプロセスが生きてる限りリークし放題
Excel VBAでしょーもない再起動が必要になったりするのはそれが原因

320 :デフォルトの名無しさん:2016/10/18(火) 09:13:44.98 ID:avoYV2sG
PNGを表示するのに明熊さんのTransG32.dllを使ってる人いる?
4000ピクセル四方程度のPNGは開けたりクラッシュしたり
どういう条件だとクラッシュするのか、
PNGの幅x高さの値と関係するのか調べても境界がはっきりしない
じゃあファイルのバイトサイズかなぁとログをとって気長に調べているのだけど
何か知ってる人はいますか

321 :デフォルトの名無しさん:2016/10/18(火) 09:19:02.67 ID:avoYV2sG
ああそうだ、開けるPNGファイルを
メモリの少ないPCでも開けるかやってみればいいか

322 :デフォルトの名無しさん:2016/10/18(火) 21:27:37.76 ID:mFczHo3i
すいません、
VB6の頃のopen文だっけ?に比べてVB.netやC#のファイル操作は遅くて
別のものを使うとVB6より速くなるみたいな
そんな記事をかなり昔みた記憶をふと思い出してググってみたのですが、その記事が見つかりませんでした。

どなたかこれの内容って覚えていませんか?

323 :デフォルトの名無しさん:2016/11/21(月) 20:14:13.91 ID:P4wVU5YC
誘導されてきました。
質問させてください。以下の現象が解決できず悩んでいます。
何か思い当たる解決方法をご存知の方がいれば、情報提供をお願いします。

■開発言語 : VB6.0(SP6だったと思う)
■プラットフォーム : Windows10(64bit)
■互換モード : Windows2000
■現象 : 「CommonDialog.ShowOpen」時にエラーが発生
■エラー内容 :
Microsoft Visual C++ Runtime Library
Runtime Error!
Program:xxxx\xxxx.exe
abnormal program termination

Windows8.1(64bit)では問題なく動作します。
互換モードをWindows2000以外にした場合、Windows10(64bit)でも問題なく動作します。
コモンダイアログはファイルを開く目的で実装しており、エラーが発生してもダイアログ自体は表示されます。
エラーを無視すればファイルの選択を行うことも可能で後続の処理も問題なく動作します。

以下のことは試したのですが、効果がありませんでした。
・「VB6Runtime」の最新化
・正常に動作する環境(Win8.1等)の「COMDLG32.OCX」を適用
・「VC++Runtime 2005〜2015」のインストール

以上、よろしくお願いします。

324 :デフォルトの名無しさん:2016/11/22(火) 08:25:59.61 ID:npWu0z6D
Win2000互換に拘る理由

325 :デフォルトの名無しさん:2016/11/23(水) 03:56:20.37 ID:xKXFPlfV
>>324
件のプロセスをキックする親プロセスがいるのですが、
親プロセスがWindows2000互換で動作しているため、引きずられてWindows2000互換で動作してしまいます。

親プロセスの互換モードを変えれば、エラーは発生しないのですが、この親プロセスからは
他に300近いプロセスをキックしているため、変更した互換モードで他のプロセスの動作検証を行う必要が出てきます。

それは避けたいため、Windows2000互換のままでも解決できる方法を探している状況です。

326 :デフォルトの名無しさん:2016/12/05(月) 03:32:50.56 ID:cV+XaugA
子プロセスの互換モードって絶対親と同じじゃないとダメなんだっけ?
互換性データベースとかいじれば何とかならんのかな

327 :デフォルトの名無しさん:2016/12/10(土) 19:10:41.50 ID:R0LDy8hm
>>323
本件については、質問してから時間が経ってしまったこともあり
工期の問題もあったため、2003SV互換ですべて検証し直しました。

Win7(64bit)なんかではWScript.Runで呼び出すことで子プロセスに設定された互換モードで動かせていたみたいです。
Win10ではそれも効かなくなっているみたいですが。

>>326
色々調べた中で互換性データベースについては初めて目にしました。調べてみます。

328 :デフォルトの名無しさん:2016/12/17(土) 08:36:14.70 ID:jn0zESOo
整数型はLongを扱うプロパティが大部分なのとループも4バイト整数が効率的なはずなのに、
他人の書いたコードは大部分がIntegerです。この型を選ぶ理由を教えてください。

329 :デフォルトの名無しさん:2016/12/17(土) 16:05:02.16 ID:5fyjnhAT
>>328
強いて言うなら、範囲制限。

330 :デフォルトの名無しさん:2016/12/19(月) 00:51:52.04 ID:OTfESfoA
>>328
大昔のBASICにlong型がなかったから
当時の人材が今でも活躍してるんで。

331 :デフォルトの名無しさん:2016/12/26(月) 08:04:16.12 ID:Nfyo2sWs
コモンダイアログは使っちゃだめだよね
将来的に使えなくなる可能性があるからAPIで書いておかないと
という話の「将来」が今田

332 :デフォルトの名無しさん:2016/12/26(月) 21:50:52.20 ID:Rlq9+0td
将来的にVBは産廃になるから移行しやすいようにレイヤー分割しとけよ
という話が教会に異端認定されて迫害されたから今苦労してるんだよね

333 :デフォルトの名無しさん:2017/01/29(日) 11:01:58.46 ID:kKew+rKl
質問させてください。
VB初心者です。(普段はもっと古代言語を使用しています)

環境:windows7,office2010,vb6,activereports2.0j

VBのフォームにOLEを配置してEXCELを表示し、
ボタンを押すと、doverbメソッドが実行されてそのEXCELを編集出来るというプログラムがあります。
開発環境では問題無く動いたのですが、
実行環境で編集ボタンを押すと、押した時にはEXCELがアクティブになるのですが、
すぐにフォームのほうがアクティブになってしまい、EXCELを編集出来ません。
何度EXCELのほうにマウスを当てても戻ってしまいます。
環境かな?と思うのですが、何が原因なのか検討もつきません。
どなたか、何か思いつくことがあれば教えていただけないでしょうか?
よろしくお願いします。

334 :333:2017/01/29(日) 11:36:27.70 ID:kKew+rKl
timerイベントで以下の処理を行っているのが原因でした。
If Me.Enabled = True Then
Me.SetFocus
End If
根本的な原因では無さそうな気がしますが、
特に問題もないようなのでこの処理を削除しました。

335 :デフォルトの名無しさん:2017/05/02(火) 07:16:38.64 ID:8sTtya12
それはよかたですね

336 :デフォルトの名無しさん:2017/05/06(土) 09:27:02.42 ID:JeNBh43P
XPか7以降だったか
プロセスやスレッド間をまたがるフォーカス移動の挙動は仕様が変わってるから
SetFocusだけでは意図通り動かないと思う
説明がめんどくさいので解決したならいいけど

89 KB
新着レスの表示

★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50
名前: E-mail (省略可) :


read.cgi ver 05.02.02 2014/06/23 Mango Mangüé ★
FOX ★ DSO(Dynamic Shared Object)