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

このエントリーをはてなブックマークに追加
1デフォルトの名無しさん
ここは 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デフォルトの名無しさん:2012/02/09(木) 19:44:33.80
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デフォルトの名無しさん:2012/02/09(木) 19:45:19.36
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/
4デフォルトの名無しさん:2012/02/09(木) 20:43:16.40
建国記念の日特番「天皇とは何か?」東浩紀×猪瀬直樹
http://live.nicovideo.jp/watch/lv80888861

【会場のご案内】
2012/02/11(土) 開場:19:50 開演:20:00


「建国記念の日」とは、
建国をしのび、国を愛する心を養う「国民の祝日」。

この日はかつて、
『日本書紀』が伝える初代天皇である
神武天皇即位の日とされた「紀元節」という祝日でした。
戦後、紀元節は廃止されるも、
1966(昭和41)年には国民の祝日として復活しました。

憲法では、
日本国と日本国民統合の「象徴」と規定されている「天皇」。
その地位は、主権者たる日本国民の総意に基づき、
国政に関する権能を全く有さないはずの「象徴天皇制」。

しかし、天皇をめぐる状況は、
日本人のアイデンティティーの探求とも絡み合い、
常に政治、社会、文化的な争点であり続けています。

そこで、ニコニコ生放送では、この建国記念の日に
あらためて、天皇とは何かを考えます。

出演は、東京都副知事の猪瀬直樹氏と、
批評家・作家、『思想地図β』編集長の東浩紀氏。
司会進行は週刊朝日の山口一臣氏です。
5デフォルトの名無しさん:2012/02/15(水) 05:26:22.81
ダックタイピングが可能ってマジで?
6デフォルトの名無しさん:2012/02/17(金) 19:20:48.62
久々にVB6案件に入った。

VB6については思い出もある。A君。
新人の当時、研修が終わってA君と私はVB6の案件チームに入った。
A君は間違いなく優秀で、私よりもどんどんVB6の技術を吸収していった。
私はVB6にあまり馴染めなかった、というよりも、A君ほどに伸びない
プレッシャーもあってか、次からはVB6のチームからは外してもらった。

A君をVB6のチームが手放すわけもなく、A君はそこで6年過ごした。
A君はエース格にもなっていったが、VB6の案件もほとんど無くなり、
VB6を扱っていない営業所に勤務となった。その営業所はJava案件中心。

VB6チームではエース格だったにも関わらず、Javaでは苦戦を強いられた。
まず、VB6をずっとやってきていたので、本格的なオブジェクト指向プログラミング
の技術が無い。デザインパターンもわからない。だから詳細設計でも
効率的なモデリングができない。

A君はその営業所で「6年やってこれかよ」というレッテルを貼られた。
しばらくA君は頑張ってはみたものの、チーム内の嫌な視線が続き、
ついには退職した。

A君は間違いなく頭脳明晰だったが、VB6を6年もやるのは問題があったと思う。
私は幸運だったかもしれない。しかしこうしてGAEだのandroidだのが隆盛の時期に、
VB6案件に戻るのは不安もある。

今の時代、転職しようにも、VB6だとキャリアに疑問を持たれるかもしれないし。
7デフォルトの名無しさん:2012/02/17(金) 19:34:26.35
ポエマーきもっ
8デフォルトの名無しさん:2012/02/17(金) 22:17:40.53
ポエムというよりモノローグ。
俺も人の心配してられない。
9デフォルトの名無しさん:2012/02/18(土) 22:50:36.32
かつてのコボラーも業界を去っていった人多いよ。
でもCOBOLは世界で最も多いって言われるほど仕事あったけどね。
10デフォルトの名無しさん:2012/02/19(日) 13:09:43.22
本当は本人がA君のような事態に陥ったんだろ

でもその原因は、VB6を6年やったからではなく、本人が
「勉強できるけど頭が良いわけではない」「偏差値高いけどIQは低い」
というタイプだったことだろう

こういうタイプは皆が0スタートで一つのことに専念する場合は
周りより優秀な結果を出すことが多いが、いきなり環境を変えられると
今まで培ったことを応用の糧にするのではなく、切替えの弊害にしてしまい
更に変にプライド高いから、Java分野では先輩だけど言語経験年数では
後輩って奴に横柄な態度取ったりして、人間関係でも上手くいかなかったり
することが多い

ま、ご愁傷様ってことで
11デフォルトの名無しさん:2012/02/20(月) 00:23:04.34
>>9
昔、某大手企業の中に出向してCOBOL触ってた事あったけど
サブルーチン化もあまりされてないし、制御文だけで延々と
ロジック組んであるのな。しかもGOTOが山ほどある。
二度と触りたくねえ…
12デフォルトの名無しさん:2012/02/20(月) 19:46:58.24
>>10
どうかはわからんけど、個人的には

Java→VB6 可
VB6→Java 不可

というような印象するんやけど。
確かどこかにデザインパターンをなんとかVB6で実装しようとしてるサイト
あった。ああいうのも、元々Javaあたりでデザインパターン学んだ人で
ないと無理やと思う。

それ以前に、VB6でもクラス使えるけどこのスレの前スレ前々スレで
オブジェクト指向的に使うのはよくない的な書き込みがあった通り
VB6でクラス使う人自体が少ないのかも。

あと、Java → C は可だけど、C → Javaで良くない例知ってる。
わからないならはっきり言ってもらえればいいのに、なまじCを十分使えるせいで
Cのような手続き的プログラミング手法でどんどん作っていってしまう人。
こういうの困るんよね。
13デフォルトの名無しさん:2012/02/22(水) 22:16:09.48
>>12
もっと言えば

VB6 → .NET  不可
Java → .NET 可

って感じしないか?
14デフォルトの名無しさん:2012/02/22(水) 22:41:44.12
なんかお馬鹿な議論。
新しい道具に適合できるかどうかが、前に何を使ってたかで決まるとは思えないし、
そんなはずがない。

単純に個人の資質の問題。要するに馬鹿かそうでないかだけの話。
15デフォルトの名無しさん:2012/02/23(木) 00:19:27.42
>>12
>それ以前に、VB6でもクラス使えるけどこのスレの前スレ前々スレで
>オブジェクト指向的に使うのはよくない的な書き込みがあった通り
>VB6でクラス使う人自体が少ないのかも。

継承も出来ないようなもので、どうやってオブジェクト指向的に使えと…
16デフォルトの名無しさん:2012/02/23(木) 01:42:34.15
継承
17デフォルトの名無しさん:2012/02/23(木) 01:44:00.08
今日的には実装の継承は、本来インターフェイスの実装+委譲でやるべきことの
手抜きで出来るようにしているに過ぎない、とみなされるようになってきているから
必ずしも継承は無くても少なくとも機能的には困らないんだけどね。

コーディングの手間の面では困るけどw

最近どこかのブログで、継承がないのはむしろVB6の先進性を表しているのだ、
と誉め殺ししてるのを読んで、そういう見方もあるのかと思ったり思わなかったり
18デフォルトの名無しさん:2012/02/23(木) 11:00:44.89
特に質問はありません。
19デフォルトの名無しさん:2012/02/23(木) 12:45:51.27
おまえらImplementsができるVB6をバカにするな
集約とラッパーメソッドで継承っぽいこともできるんだぜ
メンバが多いと効率悪すぎるけどなw
20デフォルトの名無しさん:2012/02/23(木) 20:40:33.47
TreeViewであれListViewであれ、表示するValueObjectは
implements使ってる。簡単に表示できるようになるよ。
21デフォルトの名無しさん:2012/02/23(木) 23:28:44.34
vb6のいい所は
frmMain.txtHoge.text="うんこ"
とか何も考えずにできちゃうところだろ。
スレッドが作れないのもワザとなんだよ

それなのに明示的にインスタンス作ったりとか
継承とかいんたーふぇーすとか以上とか具の骨頂
22デフォルトの名無しさん:2012/02/25(土) 02:23:03.61
>>21
まあまだおまいさんぐらいわかった上で、
制限的な機能の中でソフト作っていくのはいいんだがな。

データ型すらろくに明示せずにもソフト作れるもんだから
会社の偉いさんが作りかけのわけのわからないソフトを
渡されるこっちは迷惑だ。
23デフォルトの名無しさん:2012/02/25(土) 08:49:58.14
別の会社に発注した似たようなシステムのプログラムを渡されて
これを参考に作れとは良くある話
それを渡すことで見積もりを抑える魂胆だが
まぁ、人の作ったプログラムを読むのは実に精神衛生上よろしくない
24デフォルトの名無しさん:2012/02/25(土) 21:00:45.94
25デフォルトの名無しさん:2012/02/25(土) 21:05:29.70
VB5って無料で使えたのか
26デフォルトの名無しさん:2012/02/25(土) 21:10:09.55
とりあえず落としとけ、手に入るうちに
27デフォルトの名無しさん:2012/02/25(土) 21:18:58.86
ActiveXコントロールはVC++でつくるからいいや
28デフォルトの名無しさん:2012/02/25(土) 23:33:19.11
>>21
まあ、お前ぐらいのレベルを想定してたんだろうな。
そういうレベルの奴はごまんといるから、その想定は正しかったんだが。

>>23
すべからく最悪のケースだな。

仕様書と動作が異なる部分、要するにバグ見つけて直して実装したら、
今の動作と違うと怒られたりして、何を信じていいのかわからん状態に
なったこと何度もあるよ。
29デフォルトの名無しさん:2012/02/26(日) 21:39:31.89
「須く(すべからく)」の意味も知らないレベルの奴が偉そうな物言いしてて笑えるw

すべからく最悪のケースだな = 最悪のケースにしなくてはならない、最悪のケースにすることは必須である

素直に「全て」を使わずカッコつけようとして間違ってるとか、もうねw
30デフォルトの名無しさん:2012/02/26(日) 22:05:07.67
にちゃんで講釈たれる奴って、まだいたんだな。
31デフォルトの名無しさん:2012/02/27(月) 15:40:40.27
おいおまえら、「北面の武士」って知っとるけ?
32デフォルトの名無しさん:2012/02/29(水) 00:31:10.30
新人から6年VBやるのとJavaやるのと比べたら
断然Javaやる方が得られるものが大きいっしょ。
もうその後の運命変わる程に。新人でっていう条件付きでな。
33デフォルトの名無しさん:2012/02/29(水) 00:45:31.16
XXしかできないってだけでダメな人間にかわりはない
34デフォルトの名無しさん:2012/02/29(水) 19:16:01.69
まさにずっとVB6だからやばいわw
やべーと思ってJavaでもやってみようと思うんだけど、業務アプリみたいなのが手っ取り早く作れない

VB6プログラマのためのJava入門とか無いかな〜
35デフォルトの名無しさん:2012/02/29(水) 19:20:44.92
Javaは手っ取り早く作るための言語じゃないしなー
それならc#のがいい
36デフォルトの名無しさん:2012/02/29(水) 19:43:45.26
ああ、androidアプリ作りたいからJavaは避けて通れないんだ…

andoroidでは自社特化の軽い販売業務システム系アプリも作りたいけど
本音は私的にゲーム作りたい
eclipseでhelloworldまではこぎつけたけど、そっからがさっぱりだわ

まあスレチなのでどっかに誘導してもらえれば…
37デフォルトの名無しさん:2012/02/29(水) 19:48:43.89
いいから出ていけよ
38デフォルトの名無しさん:2012/03/01(木) 20:01:38.37
できれば新人数年のうちにデザインパターンとその適用マスターしとけよ。
VB6ばっか触ってないで。
まあ、既にVB6のチームがある会社ってそう無いと思うけど。

基本的には、オブジェクト指向そのものを解説した本とかデザインパターン
を解説した本って、Javaで説明してある本がほとんどだから
まあJava勉強しなさいってこった。

まあUMLモデリングは効率的じゃないかもしれないけど、VB6でも勉強できる。
テキストが参考になりにくいが。

俺的には、VB6以外の言語で設計やら実装やらの修行を積んだ人が、
このスレでVB6へその技術の適用を紹介してくれると嬉しい。
39デフォルトの名無しさん:2012/03/01(木) 20:04:39.64
うぜぇw
40デフォルトの名無しさん:2012/03/02(金) 12:46:49.28
windows8ではもうvb6は動かないんだろうか
41デフォルトの名無しさん:2012/03/02(金) 13:21:18.88
試験版出てるんだから試せばいいのに。
IDEがもし動かないにしても仮想PCで使えるしVB6製のソフトはランタイム入れておけば動くだろうし
そこまでしてVB6でやんなくてもいいけどね
42デフォルトの名無しさん:2012/03/03(土) 07:13:20.63
昔の話だが
役場や研究所で、自分でBASICのプログラムを作ってデータを加工したり
調べたりしていた人が手に負えなくなって発注してくることが良くあった
今の言語はそういう人からプログラム開発を奪ってる
自分の仕事をしつつ、片手間に習えるような言語ではなくなってしまった
かといって外に何百万円も払って発注できる人は限られる
そういう人にとってVBですら敷居が高いが、エクセルVBAでなんとか使えてる人もいるだろう
フレンドリーな言語としてVBは無くしてはいけないな
43デフォルトの名無しさん:2012/03/03(土) 20:59:03.15
>>42
>調べたりしていた人が手に負えなくなって発注してくることが良くあった

つまり、以前からフレンドリーでもなかったんじゃ…
44デフォルトの名無しさん:2012/03/04(日) 06:20:27.85
>>42
AccessやExcelで凄いの作ってる人もいるからな
スタンドアロンをネットワーク対応にする依頼は結構ある。
VBの型のルーズさとポトペタguI設計はもっと受け継がれていいのにな

パソコンで身の回りをちょっと便利にする、てのがなくなって淋しいなあ
メールやwebだけじゃないのに
45デフォルトの名無しさん:2012/03/04(日) 17:28:01.81
> パソコンで身の回りをちょっと便利にする
その点においてVBは頂点に君臨し続けてるよね

第三者に公開するもの、ましてや他者から対価を得て売るものを作るとなると
旧VBの弱さは否めないが、自分や身内、趣味グループや会社の小さな部署やチーム内で
ちょっとパソコンを便利にしたいって時の活躍振りで言ったら、今だ旧VBを超える物は存在しない

だからこそ、最終バージョンの販売から10年以上も経つ言語なのに
ちゃんとこういうスレが存続し、新規の質問もそれに答える人も居てさほど過疎化していない
46デフォルトの名無しさん:2012/03/05(月) 15:20:34.97
VB6+SPREAD6(Vista)でメンテ中心でプログラムをいじってたのに
Office2010 SP1を入れたらspreadのDataMemberプロパティをいじるたびに
異常終了を起こす状況に・・・
やっぱり、.netに移行しないと駄目だな。
47デフォルトの名無しさん:2012/03/06(火) 19:06:23.12
>>44
データの保存先がデータベースとかならいいけど、
自分用にExcelVBAでちょこちょこ作るならまだしろ
人のために作ってると、社内資料が隠れてしまって困る。
そして作成者が異動や退職になった日には、
メンテもできず、完全にブラックボックス化してしまう。
そして、簡単にコピーできるもんだから、もう最新版に
差し替えとか簡単にできなくなるし。

>>45
>自分や身内、趣味グループや会社の小さな部署やチーム内で
>ちょっとパソコンを便利にしたい

もう、VB6とかExcelVBAの用途って、こんなもんしか無いと思う。
でも何も考えずにVB6で作れって上から命令がくると作らざるを得ないけど。
48デフォルトの名無しさん:2012/03/12(月) 17:02:34.93
最近C++11でムーブセマンテックとかやってて気になったんだけど
VBで

S = Left$("abcd",2)

とか書いたりすると、LeftがStringを作って、それをSにコピーして
とかってなったりするの?

それともこの場合は、Leftが作った領域へのポインタだけSにコピー?
49デフォルトの名無しさん:2012/03/12(月) 20:31:08.97
>>48
後者。
50デフォルトの名無しさん:2012/03/15(木) 14:07:34.48
1 vc10で作ったdllをvbから呼び出す
2 dllはCreateThreadして、新しいスレッドで
 呼び出し元のスレッド(vbのメインスレッド)に対して
 EnumThreadWindowする。
EnumThreadWndProc内で
3 hwndに対してGetClassNameをする←ここまではok
4 hwndに対してGetWindowTextをする←ここで全スレッドのスタックが破壊

vb内の変数に別スレッドからアクセスできないのは知っているのですが
GetWindowTextは別プロセスからではなく、同じプロセス内の
別スレッドから呼ぶと、スレッドセーフではなくなってしまうのですか?
51デフォルトの名無しさん:2012/03/15(木) 14:33:58.91
> 他のプロセス内のコントロールのテキストを取得するには、GetWindowText 関数を呼び出すのではなく、
> 直接 WM_GETTEXT メッセージを送ります。
5250:2012/03/15(木) 15:20:59.98
それはやってみましたが同じでした。
そもそも、別のプロセスでもコントロールでもありません。
53デフォルトの名無しさん:2012/03/15(木) 16:47:19.72
WM_GETTEXTをSendMessageしても戻ってきたときには両方のスレッドのスタックが
壊れちゃってるってこと?
54デフォルトの名無しさん:2012/03/15(木) 16:47:43.43
別スレッドから呼ばれても安全な事をスレッドセーフと言うんじゃないかな
別スレッドから呼ぶと、スレッドセーフではなくなってしまうとか意味不明
それははじめからスレッドセーフじゃなかったって事だろ
5550:2012/03/15(木) 16:49:32.26
Declare Functionした関数を使い終わったあと
vbがすぐFreeLibraryしてしまうのが原因でした。
LoadLibraryしてGetProcAddress(vbからは呼べないが)したら
FreeLibraryされず、意図通り動きました。

(GetProcAddressしないと、手動でLoadLibraryしたにも関わらず
かってにFreeLibraryされました)
56デフォルトの名無しさん:2012/03/17(土) 12:50:03.68
例えば
a$ = "12AB56"
b$ = "34"
という文字列があって

a$の3文字目からb$を上書きしたい場合どうしてる?
例の文字列だと"123456"が得たい文字列
57デフォルトの名無しさん:2012/03/17(土) 15:13:42.94
Dim a$, b$
a$ = "12AB56"
b$ = "34"
Mid$(a$, 3, 2) = b$
MsgBox a$
58デフォルトの名無しさん:2012/03/17(土) 15:19:13.30
Dim a$, b$
a$ = "12AB56"
b$ = "34"
a$ = Replace(a$, "AB", b$)
MsgBox a$
59デフォルトの名無しさん:2012/03/17(土) 15:22:57.11
'参照設定
'-> Microsoft VBScript Regular Expressions 5.5 を追加
' (C:\WINDOWS\SYSTEM32\VBSCRIPT.DLL\3)

Dim a$, b$
Dim re As VBScript_RegExp_55.RegExp
Set re = New VBScript_RegExp_55.RegExp
re.Pattern = "AB"
a$ = "12AB56"
b$ = "34"
a$ = re.Replace(a$, b$)
MsgBox a$
60デフォルトの名無しさん:2012/03/17(土) 15:28:42.25
Dim a$, b$
Dim re As Object
Set re = CreateObject("VBScript.RegExp")
re.Pattern = "AB"
a$ = "12AB56"
b$ = "34"
a$ = re.Replace(a$, b$)
MsgBox a$
61デフォルトの名無しさん:2012/03/17(土) 15:31:11.74
Dim a$, b$
a$ = "12AB56"
b$ = "34"
a$ = Left$(a$, 2) & b$ & Right$(a$, 2)
MsgBox a$
62デフォルトの名無しさん:2012/03/17(土) 15:41:02.29
もっと賢いやり方plz
63デフォルトの名無しさん:2012/03/17(土) 15:42:22.92
いやいやそういうあんた自身が賢くないだけだって。
64デフォルトの名無しさん:2012/03/17(土) 19:14:36.75
a1$ = "12"
a2$ = "AB"
a3$ = "56"
b2$ = "34"

a$ = a1$ & a2$ & a3$
MsgBox a$
a$ = a1$ & b2$ & a3$
MsgBox a$
65デフォルトの名無しさん:2012/03/17(土) 19:32:01.57
今まで普通に>>61してたんだけど>>57ができることに最近気付いた
Mid$(a$, 3) = b$
でいいのだけど、
式の左辺に関数があるってのがどうも妙なんだ

Replaceは知らなかったけど、置き換え前の文字が何だか予め調べないといけないね
66デフォルトの名無しさん:2012/03/17(土) 19:48:33.50
数字以外の文字列で一箇所だけなら正規表現でよくね


Set re = CreateObject("VBScript.RegExp")
re.Pattern = "[^0-9]+"
a$ = "12AB56"
b$ = "34"
a$ = re.Replace(a$, b$)
MsgBox a$
67デフォルトの名無しさん:2012/03/17(土) 20:01:25.41
>>65
関数じゃないぞ。ステートメントだ。
(下記は.NETのものだがVB6でもだいたい同じ)

Mid ステートメント
http://msdn.microsoft.com/ja-jp/library/xz5s6003(v=vs.80).aspx


Mid 関数 (Visual Basic)
http://msdn.microsoft.com/ja-jp/library/05e63829(v=vs.80).aspx
68デフォルトの名無しさん:2012/03/19(月) 18:32:13.50
>>65
それができるってのを知っているし、
関数でなくステートメントだというのもわかるけど

正直、可読性を考えると左辺には置きたくないよね。
69デフォルトの名無しさん:2012/03/20(火) 20:19:36.89
おまえらってこれ使ってる?

Code Advisor for Visual Basic 6.0 − 日本語版
http://msdn.microsoft.com/ja-jp/vbasic/ms789135
70デフォルトの名無しさん:2012/03/20(火) 21:54:10.13
>>69
使ってないけど、まさかデータ型のプレフィックス付けろとか
そんな警告出ないよな?
昔はマイクロソフトもシステムハンガリアン推奨してたんよね。
今は非推奨にしてるけど。
71デフォルトの名無しさん:2012/03/20(火) 21:58:03.09
俺も使ったことないけど
.NETへの移行ツールのようだから
.NETに近いコーディングになるように警告出すんじゃね?
72デフォルトの名無しさん:2012/03/23(金) 00:53:59.50
現在VB6.0で開発したアプリ(XPSP2上で動作)が
不可解な動作をしているため質問させてください。

■アプリの機能
入力された情報を元にDBを検索し、その結果をGridに表示する。

■症状
表示するデータが100件(レコード)を超えたあたりで、Gridにスクロールバーが
表示されなくなる。90件くらいまでは表示される。
一度90件あたりがひっかるる条件で検索を実施して、スクロールバーが
出る状況にすれば、その後は100件が引っかかる条件にもどしても
スクロールバーは表示される。
Grid.rowsへのレコード数のセットや、DBの検索結果がとれていることは確認済。

初回起動後にGrid.rowsに100を超える値をセットすると起こるようなのですが
どなたか解決策を知っていたらご教授ください。
73デフォルトの名無しさん:2012/03/23(金) 02:25:20.92
>>72
Gridってどのグリッドよ?FlexGrid,DataGrid,HFlexGrid,その他外販

2回セットして回避できるなら一旦101とか設定すれば。

DB関係なくPGでデータセットしても起こるならグリッドの問題だし
切り分けようぜ
74デフォルトの名無しさん:2012/03/23(金) 18:38:46.78
えっと、ListViewなんかでも、
表示すべきデータはあるはずなのに、
表示されないっていう事はたまにある。

再表示させたりすると直るが…
75デフォルトの名無しさん:2012/03/24(土) 11:28:19.81
>>73
これは失礼しました。

昨日色々調べてみたんですがGrid32.ocxというVB6より前のものを
使用しているようです。
これ前から非推奨なんですねorz

正直作った人がすでにいないためなぜそれを使うのかも解らず。
早期に直す必要があるため、とりあえず初期値大きめにして様子を見ます。

ご返答ありがとうございました。
76デフォルトの名無しさん:2012/03/25(日) 03:55:08.13
理由なんて簡単、当時はそれしか無かったから。
付け変えられるなら変えちゃった方が良いと思うけど
77営利利用に関するLR審議中@詳細は自治スレへ:2012/04/05(木) 15:02:36.75
>>69
使ってみた
.NETでは使えないコード表現や構文や関数等に”.NETでは使えない”という感じの注釈文が挿入されるだけ
代替案を提示してくれるわけでもない
.NETに移行するなら代わりのコードを自分で調べないといけない
微妙
78営利利用に関するLR審議中@詳細は自治スレへ:2012/04/09(月) 13:52:28.31
で、お前ら何がしたい訳?

そんな突っ込み満載だが、なんでVBにこだわるんだって言う所から話を戻すべきな気が・・・
イスラム教徒に対して
「なぜイスラム教にこだわるんだ?」とか言っちゃったりするタイプの人か
VB信者ワロス
開発環境という程大げさではないんですが、客先での作業端末に仕込む各種フリーソフトを
一括でインストール(配置)しようと、VB6で作成するexeファイルに埋め込むような事は可能でしょうか。
最終形はフォームに各種ツールのインストールボタンがあって、クリックするとexe内からの相対パスになるのでしょうか。
該当のツールを任意のパスに配置、ということをやりたいです。
Microsoft Visual Basic 6.0 Service Pack 6 セキュリティ ロールアップ更新プログラム
ttp://www.microsoft.com/downloads/ja-jp/details.aspx?FamilyID=0afe933a-1e62-45c4-910c-ea94b203df5a
83営利利用に関するLR審議中@詳細は自治スレへ:2012/04/11(水) 11:49:36.88
>>81
フォルダごとごそっとコピーじゃだめなのか
それだけで動かないレジストリ登録とか居るやつはインストーラ使わないとだめだろ
84片山博文MZボット ◆0lBZNi.Q7evd :2012/04/11(水) 12:07:00.40
>>81 Inno Setupがいいよ。
まだセキュリティアップデートがあったのか
86デフォルトの名無しさん:2012/04/16(月) 18:19:26.21
クラスモジュール内に定数とか定義すると
クラスのインスタンス生成するたびに定数分のメモリが増加してくの?
87デフォルトの名無しさん:2012/04/18(水) 17:47:23.19
>>86
staticにできないから、そういう事になるね。
88デフォルトの名無しさん:2012/04/18(水) 18:53:20.17
なるほどdクス
89デフォルトの名無しさん:2012/04/18(水) 18:58:11.56
すみません、質問いいですか?

実はVB6.0のライセンス契約書を紛失してしまいました。
VB6.0ってまだ買えるんですか?
VS2008proやVS2010proのライセンスでは代用できませんか?


教えて君ですみません。明日までに回答なんですが、よろしくお願い致します。
90デフォルトの名無しさん:2012/04/18(水) 19:08:33.34
昔はMSDNに入ってたが今はどうなんだろうかな
ライセンスの代用はできません
91デフォルトの名無しさん:2012/04/18(水) 19:13:45.16
今見たら、MSDNでProduct KeysとISOのダウンロードができるな
入会してないとだめだろうけど
92デフォルトの名無しさん:2012/04/18(水) 19:45:13.44
>>90
ありがとうございました。

http://www.microsoft.com/japan/msdn/howtobuy/vs2005/downgrade/default.aspx

これには該当しないってことですよね?
93デフォルトの名無しさん:2012/04/18(水) 19:57:08.33
ダウングレードの条件がボリュームライセンスなので該当しているのならOKでは?
94デフォルトの名無しさん:2012/04/18(水) 20:02:14.36
お、よく読んでなかった
パッケージもOKのように書かれてるな
9589:2012/04/19(木) 18:45:19.15
皆さんありがとうございました。

念のためマイクロソフトのサポートに電話しましたら、同じページを案内されました。

これでスッキリVBを使えます!
96デフォルトの名無しさん:2012/04/20(金) 11:29:23.47
flvの動画ファイルを1秒おきにキャプチャしそれを指定の行数(縦○個、横○個)
みたいに並べ1枚の画像として出力するというソフトを作りたいと思っています。

何かヒントをお願いします。
97デフォルトの名無しさん:2012/04/20(金) 11:34:09.55
その通りに作ってはどうでしょうか?
98デフォルトの名無しさん:2012/04/20(金) 17:00:30.83
トラブルがおきたり行き詰ったりしたときに質問なさいな
99デフォルトの名無しさん:2012/04/20(金) 17:06:00.99
>>96
DirectXを使えばいいんじゃね?知らんけど


Visual Basic で DirectX を使おう
http://msdn.microsoft.com/ja-jp/library/dd148667.aspx

DirectShowでFLVを再生するための仕組み等について: さまよう金の髭
http://goldenhige.cocolog-nifty.com/blog/2010/01/directshowflv-e.html
DirectShowでFLVを再生するために必要なものの導入手順: さまよう金の髭
http://goldenhige.cocolog-nifty.com/blog/2010/01/directshowflv-c.html

DirectShow Capture
http://vision.kuee.kyoto-u.ac.jp/~hiroaki/firewire/directshow.html
DirectShow でビデオキャプチャ(前編) - 大阪府立大学 学術研究院 第2学群 電気情報系 青木茂樹
http://www.kis.osakafu-u.ac.jp/~aoki/cgi-bin/wiki.cgi?page=DirectShow+%A4%C7%A5%D3%A5%C7%A5%AA%A5%AD%A5%E3%A5%D7%A5%C1%A5%E3(%C1%B0%CA%D4)
100デフォルトの名無しさん:2012/04/20(金) 19:34:54.69
>>99
親切にどうも。
そして、そのページを読んでも作れそうにないw

参考書を頼りに2、3個ソフトを作ったことがある程度なので。
1万円で誰か作ってw
101デフォルトの名無しさん:2012/04/20(金) 19:37:46.60
そんなレベルの奴が何故VB6以前の古いVBを持ってるんだ?
102デフォルトの名無しさん:2012/04/20(金) 19:42:08.12
そういや
個人からの依頼でアプリケーション作成する企業って聞いたことないな
103デフォルトの名無しさん:2012/04/20(金) 19:56:25.91
採算あう条件ならそこらへんのソフト会社でもうけてくれるだろう
1万じゃ無理だろうけど
104デフォルトの名無しさん:2012/04/21(土) 02:04:16.22
>>100
難しいことしないでもブラウザで再生しといて
タイマー置いて一秒ごとにクリップボードに貼付けて保存すればいいんじゃね
あとはビットマップの加工だろ
105デフォルトの名無しさん:2012/04/21(土) 02:25:05.19
難しいことに挑戦したほうがスキルアップするだろうけど
まぁ今更古いVBのスキルが上がったところで意味ないし時間もかかるからね
適当な企業にお望みのソフトを作ってもらえばいいと思うよ
106デフォルトの名無しさん:2012/04/21(土) 07:36:16.00
>>96
flvファイルを画像ファイルに変換するのはフリーソフトあるだろう。たぶん。
変換後の画像ファイルを並べて一枚の画像にするのもフリーソフトあるだろ。たぶん。
107デフォルトの名無しさん:2012/04/22(日) 04:58:14.74
「FLV キャプ フリーソフト」のキーワードでググりゃ出てきそうなもんだが
プロのプログラマでもない趣味グラマというかアマグラマというような俺が
自前でソフト作ってる理由は、他者が作ったソフトはブラックボックスすぎて安心できないという理由だったが
個人製作ソフトだけじゃなく企業製作ソフトまで信用おけぬ社会となった今
OSやプリインストールソフトさえ疑心暗鬼になるわけで
既存ソフトと同様の働きするソフトを自作するのは無意味だと悟った
既存ソフトで出来ない頻繁に行う特殊な作業用途には自作するが
アプリケーション作成できるプログラミング言語はフリーソフト含め多々あるが
俺が必要とするアプリのレベルや質からしてVB6が一番作りやすかったので
未だにVB6を使い続けてる理由だ
108デフォルトの名無しさん:2012/04/22(日) 04:59:53.28
チラ裏
109デフォルトの名無しさん:2012/04/22(日) 05:07:26.24
VA6には疑心暗鬼にならないの?
110デフォルトの名無しさん:2012/04/22(日) 22:06:28.10
>>96
ちょうど動画をサムネイル表示するソフト作ってるところだよ
俺らのレベルだと動画ファイルから静止画を抜き出すのは無理だ
1時間の動画なら1時間再生して、タイマーでキャプチャすることになる

1.プレーヤーのハンドルを取得するFindWindow
2.プレーヤーを全面に出すSetWindowPos
3.プレーヤーの位置を取得GetWindowRect
4.プレーヤーをキャプチャGetDesktopWindow、GetWindowDC、BitBlt、ReleaseDC
5.プレーヤーの外周をカットして保存

それよりYoutbeの動画を保存するソフトの方が失敗するケースがでてきた
Youtbeの仕様が変わって、IEのテンポラリからファイルをコピーするのとは別に
もう一つのやり方、計二つの方法を使い分けないといけないらしい
その新しい方法について、誰か教えて
111デフォルトの名無しさん:2012/04/23(月) 12:26:27.94
VB6で作ろうとするから大変なんであったSuzukaで作れば
ちょちょいのちょい
112デフォルトの名無しさん:2012/04/23(月) 16:43:05.34
個人趣味でVB6で作るならちょっとした些細な程度のアプリだよな
113デフォルトの名無しさん:2012/04/23(月) 21:10:55.84
FLVプレーヤーはキャプれるけどWMPは裏技がいるよ
114デフォルトの名無しさん:2012/04/23(月) 23:21:13.49
パソコン内に保存してる動画ファイルなら
動画ファイルのファイル構造を調べて自分で抽出するかすればいいんじゃね
いわゆるコーデックの技術やろ?
115デフォルトの名無しさん:2012/04/24(火) 00:01:41.19
flvはコンテナだからなー
コーデックも複数あるしめんどいわな
116デフォルトの名無しさん:2012/04/24(火) 02:55:34.24
静止画抜き出すんだったら、avisynth+avsutil が楽だよ。

v=directshowsource("動画ファイル", audio=false).ChangeFPS(15.000).ConvertToRGB24()
v.trim(446,447).ImageWriter("C:\TEST\hoge", 1, 1, "jpg")

こんな感じのスクリプトファイル(hoge.avs)を作って

avsutil hoge.avs play

とすると、C:\TEST\hoge000001.jpg ができる。

Win7Codecs を入れておくと吉

詳細は wiki で調べてみて
ttp://www.avisynth.info/
117デフォルトの名無しさん:2012/04/26(木) 15:02:11.26
動画に詳しい人がいるみたいだけど
Dalymotionから動画を落とすプログラム作った人いる?
それ用の板にはどんなアプリで落とせるとかはあるけど
作り方のスレは見当たらないので
118デフォルトの名無しさん:2012/04/26(木) 15:04:23.16
>>117
違法動画落としたいの?
119デフォルトの名無しさん:2012/04/26(木) 15:08:47.56
動画なんてflvやmp4のありかを見つけてHTTPでゲットするだけだよね。
ニコニコのダウンロードツールなら作ったことあるよ。
120デフォルトの名無しさん:2012/04/26(木) 15:16:28.32
えっと、ストリーミングの存在を知らないとか?
121デフォルトの名無しさん:2012/04/26(木) 15:21:59.37
いやまあDalymotionというのは知らないけど
122デフォルトの名無しさん:2012/04/26(木) 15:24:44.97
googleっていう便利なサイト知ってる?
123デフォルトの名無しさん:2012/04/26(木) 15:27:40.89
はぁ。どうでもいい。
124デフォルトの名無しさん:2012/04/26(木) 15:32:40.53
もう>>119みたいな恥ずかしいレスはやめてね
125デフォルトの名無しさん:2012/04/26(木) 15:34:40.96
>>124
どこが恥ずかしいの?
126デフォルトの名無しさん:2012/04/26(木) 15:38:44.89
>>125
googleっていう便利なサイト知ってる?
127デフォルトの名無しさん:2012/04/26(木) 15:43:01.34
>>125
ニコニコのダウンロードツール作ったくらいで、
> 動画なんてflvやmp4のありかを見つけてHTTPでゲットするだけだよね。
と結論付けちゃうところが恥ずかしい。
128デフォルトの名無しさん:2012/04/26(木) 15:48:36.91
>>127
あーそゆことか。
DalymotionというサイトではHTTPでアクセスできないのね。
129デフォルトの名無しさん:2012/04/26(木) 16:00:16.18
いやいや、>>124みたいなのがよっぽど恥ずかしいよ。

誰しも知らないことなんて山のようにある。
山のようにあるけど、知ってる範囲で答えればいいよ。
回答する前にgoogleで調べるも調べないも事由。そもそも質問者がググればわかる質問の方が多いくらいだし。
130デフォルトの名無しさん:2012/04/26(木) 16:02:19.89
知らないなら黙ってればいいのに
131デフォルトの名無しさん:2012/04/26(木) 16:03:43.08
CravingExplorerのDalymotionというサイトのスクリプト見てみたけど
普通のHTTPでflvをゲットできそうだな。
むしろニコニコより簡単じゃないか?
132デフォルトの名無しさん:2012/04/26(木) 16:10:12.15
勉強がてら寄生型の動画共有サイト作ったことあるけど
だいたいどこも仕組みは同じだよね。
違うのはニコ生みたいなリアルタイム配信くらいでしょ。
>>120のいうストリーミングはこっちのことかな。
でもDalymotionは違うみたいだけど。
133デフォルトの名無しさん:2012/04/26(木) 16:13:16.64
よく知らないけど、RTSPとかの場合じゃ無いの?
よく知らないけど。
134デフォルトの名無しさん:2012/04/26(木) 16:15:22.70
そして誰もググらない
135デフォルトの名無しさん:2012/04/26(木) 16:16:35.51
RTSPはニコ生とかユーストだっけ?あれとかだよね?
Dalymotionは普通にFlashがflv読み込みつつ再生してるだけみたいだけど。
これをストリーミングといってるならちょっとあれだよね。
136デフォルトの名無しさん:2012/04/26(木) 17:17:37.50
つまり、埋め込み動画ページの動画ファイルへのURLの取得方法がわからんということになるのかな?
137デフォルトの名無しさん:2012/04/26(木) 18:05:19.39
  ∧_∧
 <丶`◇´>すぅ〜
⊂    ⊃
 (    )
 〈_フ__フ
                  ウソウソ                  ウソウソ
                  ウソウソ         ウソウソ       ウソウソ
            ウソウソウソウソウソウソウソウソ     ウソウソ      ウソウソ
  ∧_∧      ウソウソウソウソウソウソウソウソ       ウソウソ     ウソウソ
 <丶`○´>はぁ〜 ウソウソ       ウソウソ        ウソウソ    ウソウソ
 人 Y /      ウソウソ       ウソウソ              ウソウソ
 ( ヽ し                ウソウソ             ウソウソ
 〈_フ__フ              ウソウソ            ウソウソ

【韓国】韓国の偽証罪は日本の671倍、理由は嘘を大したことと思わない社会の風潮
http://japanese.chosun.com/site/data/html_dir/2003/02/13/20030213000039.html
【韓国】韓国の冤罪件数は日本の2万倍
http://article.joins.com/article/article.asp?Total_ID=3065466
【韓国】“ウソ中毒”に陥った韓国社会
http://gimpo.2ch.net/test/read.cgi/news4plus/1225352283/
【韓国】うそで塗り固められた詐欺王国・韓国
http://www.chosunonline.com/article/20070919000043
【韓国】息を吐くように嘘をつく「偽証天国」からの脱却には司法妨害罪の導入を
http://www.chosunonline.com/news/20100202000025
【韓国】小学校でもウソの訓練、国全体がウソの学習場だ
http://japan.donga.com/srv/service.php3?bicode=100000&biid=2003122902698
【韓国】「朝鮮人は嘘吐き民族」100年前から西洋人宣教師が苦言
http://japanese.donga.com/srv/service.php3?biid=2002080859758
【韓国】日帝被害者を相手に複数から手数料騙し取る詐欺事件…騙された側も8割が虚言申告
138デフォルトの名無しさん:2012/04/26(木) 18:44:00.68
それはCravingExplorerのスクリプトかパケットキャプチャでもすれば
わかるでしょう。
どちらにしてもたいしたことではないな。
139デフォルトの名無しさん:2012/04/26(木) 19:24:07.27
なのに誰もやらない
140デフォルトの名無しさん:2012/04/26(木) 19:28:18.97
CravingExplorerがあるから普通は要らないでしょう。
勉強がてら作るなら普通はニコニコだし。
Dalymotionなんて今日ハジメテ知ったし
141デフォルトの名無しさん:2012/04/26(木) 19:29:13.78
エロ動画のサイトだっけ?
142デフォルトの名無しさん:2012/04/26(木) 22:51:57.41
エロがあんだよエロが
中学生くらいのパツキンの子がWEBカメラで乳出しとか
既存のツールで落とせるけど人の作ったプログラムは嫌じゃん
143デフォルトの名無しさん:2012/04/26(木) 23:05:13.48
潔癖症だな
144デフォルトの名無しさん:2012/04/26(木) 23:23:16.61
自動ポルノは違法じゃねえの?
145デフォルトの名無しさん:2012/04/27(金) 00:35:00.66
何言ってるの?人殺しだって違法なんだよ
毎年、数万人がサラ金朝鮮人に殺されてる日本で何をいわんやでございます
146デフォルトの名無しさん:2012/04/27(金) 01:05:42.70
被害妄想を被害妄想と自覚できなくなったらもう立派な精神疾患だなw
147デフォルトの名無しさん:2012/04/27(金) 03:12:31.69
いつまでDalymotionで遊んでるんだよ。
ダリーモーションってw
だるいならするなよw
148デフォルトの名無しさん:2012/04/27(金) 22:01:49.40
ちなみにサラ金朝鮮人に換金された日本人の命の数は
そのほんの一部が金融庁で表になって公開されてるがな
149デフォルトの名無しさん:2012/04/27(金) 22:10:13.83
そういう大事なことはこんなところじゃなくて駅前でメガホン持って言った方がいいよ。
で、「ママーあのデブのおじさん目つきが変だよ」「しっ見ちゃいけません」
150デフォルトの名無しさん:2012/04/29(日) 12:58:46.25
毎年、朝鮮人に何万人もの日本人の命が
「費者信用団体生命保険」で金に替えられてるんだわ
総数は数十万人、そのほとんどが死因不明。
VBの質問がなければ話を続けてもいいぞ
151デフォルトの名無しさん:2012/05/05(土) 05:45:41.23
>>150
続きをどうぞ!
152デフォルトの名無しさん:2012/05/05(土) 10:03:08.39
超少子化危機に

米スタンフォード大学の梁建章博士、ミシガン大学客員研究者の李建北京大学教授による人口研究リポート『中国人は多すぎるのか』が25日出版された。
中国が今後、人口5億まで減少する一方で、15歳以下人口の割合は10%未満、65歳以上人口は40%を超えるとする国連の人口予測リポートを紹介した。
http://news.searchina.ne.jp/disp.cgi?y=2012&d=0426&f=national_0426_083.shtml

韓国の出生率は世界最低だ
http://japanese.joins.com/article/064/150064.html?servcode=100§code=110
153デフォルトの名無しさん:2012/05/05(土) 12:06:14.29
徹底的にハードな熱湯浴するぞ!まで読んだ。
154デフォルトの名無しさん:2012/05/06(日) 01:54:07.61
動画がIEのキャッシュに残るケースは
http://officetanaka.net/excel/vba/filesystemobject/sample11.htm
を参考に作ったのだけど、その他のケースはどうしたらいいか

保存方法をネットで調べてもツールの紹介ばかりで
プログラマ向けのサイトが見つからない
そんな自作派はどこにいるのでしょうか
2ちゃんのスレも探してみたけど・・・
155デフォルトの名無しさん:2012/05/06(日) 01:59:29.01
>>154
動画のダウンロードだろ?
当たり前、IEのキャッシュなんか使おうと思わない。

普通にウェブプログラムの初歩を知っていれば
ダウンロードなんて関数一つでできる。
サーバー側が対処しているなら、
リクエストヘッダ見てそれと同じ物を送るだけ。

君は、皮むき器の使い方を、
料理人向けサイトで探しているようなものなんだよ。
156デフォルトの名無しさん:2012/05/06(日) 02:14:14.30
VB6でHTTP通信となるとWinHTTPが良いかな?
157デフォルトの名無しさん:2012/05/14(月) 16:26:59.38
流れ読まず質問すみません
OS WindowsXP SP3
VisualBasic 6.0 SP6

フォーム上にある複数のTextBoxのイベントハンドラを共用したくて
WithEventsを用いてイベントをフックするクラスを作りました。
この時、すべてのTextBoxに対して未入力かどうかと入力数のチェックを行い
個々に数字のみ受け付けるものと、英数字を受け付けるもののチェックも行いたいと考えています。
この場合はフックした側のイベントハンドラ内で条件分岐が一般的なのでしょうか?
それともフォーム側の元々あるイベントハンドラに個々の条件は書いても差し支えないものですか?

後者の場合、イベントハンドラの呼ばれる順番が本来のもの→フックしたもの、の順番のようなので
数字のみかどうかの判別した後に未入力や入力数のチェックとなり、想定しているチェックの順番と異なってしまいます。
それぞれに異なるクラスでフックするか、フックしたハンドラ内部で条件分岐するしか選択肢がないのでしょうか?
一般的な実装方法などあれば知りたいです。

また、この手のもので参考になるHPや文献などもご存知の方居ればご教授願えればと思います。
よろしくお願いします。
158デフォルトの名無しさん:2012/05/14(月) 16:53:46.81
> 一般的な実装方法などあれば知りたいです。
ActiveXコントロール

> また、この手のもので参考になるHPや文献など
市販のActiveXコントロール買え
159デフォルトの名無しさん:2012/05/14(月) 17:07:02.08
160デフォルトの名無しさん:2012/05/14(月) 17:40:39.59
>>157
>フォーム上にある複数のTextBoxのイベントハンドラを共用したくて
>WithEventsを用いてイベントをフックするクラスを作りました。

なんのためにクラスを作ったのかと。

数字のみを受け付けるクラス、英数字を受け付けるクラスを作成。
IValidateクラスを作り、validateメソッドを定義。

数字のみを受け付けるクラス、英数字を受け付けるクラスともに
IValidateをimplementsする。
IValidate_validateメソッドを実装する。

こんなとこでどうでしょうかと。

でもね、個人的には>>159で紹介されてるサイトの
「4.あとでまとめて」という方法が好きなので
別のユーティリティクラスもしくはユーティリティモジュール作成して、
数字のみ、英数字のみをチェックするメソッドを作っておくよ。俺なら。
161デフォルトの名無しさん:2012/05/14(月) 17:48:20.16
VB 入力チェック論1 チェックするタイミング
http://homepage1.nifty.com/rucio/main/technique/InputChk.htm
の 5.後でまとめて入力チェック

随分とトリッキーな方法だな
こんなSelect文の使い方初めて見た
162デフォルトの名無しさん:2012/05/14(月) 17:49:29.69
質問をよく読んでから回答しましょう
163デフォルトの名無しさん:2012/05/14(月) 17:52:37.41
>>160
> 「4.あとでまとめて」という方法が好きなので
Webアプリとかだと、これが一番いらつく元凶。
VBで言えば、lost focusでチェックできるならその場でチェックするのがUX的には最強。
164デフォルトの名無しさん:2012/05/14(月) 18:07:33.27
少しはValidateさんのことも気遣ってあげて
165157:2012/05/14(月) 18:19:10.56
みなさんありがとうございます。

>>158
ユーザーコントロールの作成は今回は検討しておりませんでした。
また、市販のActiveXコントロールはブラックボックスなので
残念ながら参考には出来そうにないですね…。

>>159
そのサイトはいつもお世話になっています。

>>160
今ちょうどインターフェース継承と委譲に行き着いていたところでした。
数字のみの方は入力中に数字キー以外をkeyascii=0などで無効にしようと考えているので
今回はインターフェースの利用で行こうと思います。

付随して入力チェックに関していくつかご意見いただけた方々も含め
ご回答ありがとうございました。
166デフォルトの名無しさん:2012/05/14(月) 20:20:12.34
方法によってはCtrl+Vなどには効かないというオチがあったりするがな
167デフォルトの名無しさん:2012/05/25(金) 00:44:59.44
VB6.0と古い環境ですみません。

Access2000のDBにアクセスして、直近2年分のデータのみcsv形式で
引き抜きたいと思っております。
以下のように記述したのですがどうもうまく動いておらず・・

Dim DB As DAO.Database

Dim StrSQL As String, strDatabase As String

'strDatabase = PbDbServPath
strDatabase = "\\AAAAAA\AAA$\db.mdb"

' データベースを開く
Set DB = DBEngine.OpenDatabase(strDatabase)

Dim YM_hikaku As Date
YM_hikaku = CDate(DateTime.Date())
YM_hikaku = DateTime.DateAdd("yyyy", -2, YM_hikaku)

StrSQL = "SELECT * INTO " & _
"[Text;DATABASE=C:\AAA].[data_AAA.csv] " & _
"FROM 月別商品テーブル WHERE 日時 >= YM_hikaku order by CODE asc"


DB.Execute StrSQL
DB.Close

誤っていそうな場所。修正ポイントがありましたらご教授いただけますと助かります。
168デフォルトの名無しさん:2012/05/25(金) 05:11:57.17
>>167
"FROM 月別商品テーブル WHERE 日時 >= " & YM_hikaku & " order by CODE asc"

変数名が文字列扱いになってる
169デフォルトの名無しさん:2012/05/25(金) 10:19:43.18
>>168
大変助かりました!ありがとうございます!

170デフォルトの名無しさん:2012/05/25(金) 14:04:59.84
Jetってselect intoでcsvファイル指定なんてできるのか
171デフォルトの名無しさん:2012/05/25(金) 16:23:18.15
>>170
はい!できました!

データ型によっては\マークが前について気持ちが悪いですけど
172デフォルトの名無しさん:2012/05/25(金) 21:45:18.52
>>168>>169
"FROM 月別商品テーブル WHERE 日時 >= #" & YM_hikaku & "# order by CODE asc"

#なくて大丈夫なん?
173デフォルトの名無しさん:2012/05/25(金) 23:33:44.58
>>172
ありがとうございます!大丈夫でした。
174デフォルトの名無しさん:2012/05/26(土) 03:44:04.09
Access開いてクエリでエクスポートした方が早いような

ってのは言わない約束か
175デフォルトの名無しさん:2012/05/26(土) 04:58:51.50
>>174
たしかにそのとおりなのですが
FTP経由でレンタル鯖(MySQL)にあげたいのです。

リプリケーションみたいなのができればいいのですが
csvファイルに落とすしか思い浮かびませんでした。
176デフォルトの名無しさん:2012/05/26(土) 18:15:11.08
>>172
日付リテラルで渡すと、形式によって正しく認識されなかったような

>>175
MySQLのドライバ入れてリンクテーブル、てのは無理なのか?
177デフォルトの名無しさん:2012/05/26(土) 18:52:27.40
>>176
レンタル鯖なので自由度がすくなくて・・

でもできるかちょっと勉強して試してみます。ありがとうございます!
178デフォルトの名無しさん:2012/06/02(土) 18:38:20.84
当方VB6の経験しかないのですが、会社を辞めて求職中。
採用してくれる会社はあるでしょうか?
それとも異業種に転職した方が良いでしょうか?
179デフォルトの名無しさん:2012/06/02(土) 19:29:19.88
VB6以外の言語を覚える気が無いんですか?
もしそうならどこの会社も無理です
180デフォルトの名無しさん:2012/06/02(土) 23:22:40.51
>>179
30を過ぎてからプログラムをはじめて現在35歳。
他の言語を覚える気はあっても
応募した会社はそういう所は評価してくれません。
181デフォルトの名無しさん:2012/06/02(土) 23:34:18.30
あなたのやる気なんて知ったことではないんですよ
あなたは何ができますか?VBだけですか?
会社辞めて何日たちましたか?その間に覚えた言語は何種類ですか?
その何種類かの言語で何か人に見せられるくらいのものを作りましたか?
では見せていただけますか?
182デフォルトの名無しさん:2012/06/03(日) 00:26:03.33
>>180
30過ぎという時点で、採用側は即戦力となる事を期待している。
したがって他の言語を覚える気があるって言われても、
即戦力で他の言語を使えるレベルだって事を証明してくれないと採用には踏み込めない。
口先だけいい事を言う奴は沢山いる。

実務経験はないけど、MCP C++持ってますとか、SJC持ってますぐらいの事は
言ってくれないと採用にはつながらないよね。
183デフォルトの名無しさん:2012/06/03(日) 03:10:03.73
>>181
そういう質問する会社なんてねーよ。

>>182
5年でVBしかやってない人に即戦力期待するわけねーじゃん。
うちの会社だと基本的に30すぎた人採用しねーし。

資格で可能性があるとしたら、かなり難易度高い資格持ってるとか
うちの会社で誰も持ってない資格持ってるとか。

経験したプロジェクトのうち、高度な数学処理とか高度な経理処理とか必要で
そういうのを扱ったコアメンバーであるとか。

30過ぎてたら●●言語が扱えますってのは武器にはならないけど、
●●言語しか経験してないっていうのは余計に印象悪くするから
職務経歴書には言語は特に記載しなくていいかもね。
聞かれたら答えるとか、言語は他に●●もいけますとかぐらいに答えて。
184デフォルトの名無しさん:2012/06/03(日) 03:50:23.57
マ板
185デフォルトの名無しさん:2012/06/03(日) 23:26:38.22
何か質問してよ
186デフォルトの名無しさん:2012/06/04(月) 00:53:56.24
現状でまだVBで行くって所は、人員がそういう構成だって事
つまり余ってない
187デフォルトの名無しさん:2012/06/04(月) 15:49:13.13
VS-FlexGrid Pro 8.0Jについて教えてください。

・行単位の選択にしているのですが、複数行選択できてしまいます。
 1行しか選択できないようにはできないでしょうか?

・プログラム側からスクロール位置を指定できないでしょうか?
 それっぽいメソッドやプロパティが見当たりませんでした。

どうぞよろしくお願いします。
188デフォルトの名無しさん:2012/06/04(月) 16:28:19.15
vb6のListViewで.netのBeginUpdateを実現できるAPIとかないですか?
ファイルの検索結果を表示するのが遅いので。
189デフォルトの名無しさん:2012/06/04(月) 22:23:13.10
WM_SETREDRAW
190デフォルトの名無しさん:2012/06/05(火) 10:12:06.17
ありがとうございます。
SendMessage ListView1.hwnd, WM_SETREDRAW, 0, 0 としても
WM_SETREDRAWを無視しているか、
Addしたときに勝手にWM_SETREDRAW, TRUEされているようで、
表示は更新されてしまうし、速度も変わりませんでした。
191デフォルトの名無しさん:2012/06/05(火) 11:11:08.76
一度非表示にしてリスト追加終わってから再表示じゃダメなん?
192デフォルトの名無しさん:2012/06/05(火) 12:38:31.59
若干速くなりましたが、Windows標準と比べると全然。
VBではここが限界?
193デフォルトの名無しさん:2012/06/05(火) 12:47:38.73
サンプルプログラム集 [840_処理のキャンセル,画面更新の停止,キーやマウスの操作禁止] 【Mr.XRAY】
http://mrxray.on.coocan.jp/Delphi/plSamples/840_CancellLockDisable.htm

これの 04_画面の更新を停止 って項の LockWindowUpdate ってやつは?
194デフォルトの名無しさん:2012/06/05(火) 12:52:56.85
ListView自作しちゃったほうが早そうだな
195デフォルトの名無しさん:2012/06/05(火) 21:30:17.04
デフォルトのコントロール以外を使うと
他のマシンで実行する時にEXEコピーだけで済まないから自作することが多いなぁ
プログレスバーだのリストビューだの
196デフォルトの名無しさん:2012/06/05(火) 21:45:52.76
>>190
LockWindowUpdateは避けるべき。ソースはThe old new things。

で、違う環境ではあるけれども、DelphiではWM_SETREDRAWでBeginUpdate/EndUpdateを
実装している。なのでやり方が悪いのではないかと…。単純なテストプログラムで試してみては。
あるいは>>191のVisibleを制御する方法も。
197デフォルトの名無しさん:2012/06/05(火) 21:54:27.57
ぺがらぼ - etc 研究室
http://bbs.pegalabo.net/c-board.cgi?cmd=ntr;tree=1;id=etc


>VB6などで、描画メッセージを無効にして、その間にコントロールを追加するという技法は、
>
>Visible = False
> 〜 追加処理〜
>Visible = True
>
>という感じでやるのはあまりにも有名ですが、
>ListBoxの場合は何故かちらついてしまいます。(ComboBoxは大丈夫)
>
>そこで、
>
>Call SendMessage(ListBox1.hWnd, WM_SETREDRAW, FALSE, &H0);
>
>とやることにしたのですが、どうもListBoxは描画されているようです。
>(これもComboBoxは大丈夫だったのですが)
>
>何故なんでしょうか?
>
># 実際に、その後ウィンドウなどで隠しても描画されちゃってました。
198デフォルトの名無しさん:2012/06/05(火) 22:01:23.26
lotusnut.com -自由な空間- Visual Basic 6.0 リストビューコントロールへの表示を考える
http://www.lotusnut.net/program/vb/logic/ListView.html

この人はうまく行ってるみたいだけど
199デフォルトの名無しさん:2012/06/06(水) 12:38:24.61
任意の整数の偶数/奇数を判定するモジュールを開発しています。
納期は連休明けです。
http://okwave.jp/qa/q2122395.html

200デフォルトの名無しさん:2012/06/06(水) 13:12:23.92
>>199
こんなの納められたらたまったもんじゃないな・・・

テスト仕様書とかどうなるんだこれ
201デフォルトの名無しさん:2012/06/06(水) 13:28:17.46
ネタをネタと
202デフォルトの名無しさん:2012/06/06(水) 16:30:11.43
>>188
表示は非同期風にすれば気になら無いのでは?
203188:2012/06/07(木) 11:07:16.30
すいません、恥ずかしながら、全然違う原因でした。
表示中にアイコンを読み込んでいるのが原因でした。
204デフォルトの名無しさん:2012/06/10(日) 00:16:56.57
VBは自動テストツールはありますか?
205デフォルトの名無しさん:2012/06/10(日) 00:31:27.71
あります。
206デフォルトの名無しさん:2012/06/10(日) 02:22:55.66
ありますん。
207204:2012/06/10(日) 10:06:22.12
>>205
>>206
ありがとうございます。
フリーがよいのですが教えて頂けませんか?
208デフォルトの名無しさん:2012/06/10(日) 10:44:48.60
こうやって情報後出ししてくる奴は、教えたところで
アレが気に入らない、コレが使いにくいと後出しで文句言い続けるから
なるべく早い段階で放置に切り替えるのが吉
209デフォルトの名無しさん:2012/06/10(日) 11:30:16.87
そう言わずに解説ページだけでも教えてくれませんか
210デフォルトの名無しさん:2012/06/10(日) 18:24:20.38
まあその前にあるかの質問にあるだけで回答してるからな。
そりゃふりーかどうかは別にしてどんなのがあるかまではきくだろうし。
211デフォルトの名無しさん:2012/06/11(月) 00:53:43.59
しかしまあググらない人ばっかりね
212デフォルトの名無しさん:2012/06/11(月) 02:35:55.14
ドキュメント生成ツールなら知ってるけど
自動テストツールって何よ
本来のINPUTがない環境で実行したい、とかなら自作以外に方法がないと思うけど
決まった操作を自動でしたいというならフリーでUWSCというのがあるけど
たぶんそれのことじゃないんだろうな
213デフォルトの名無しさん:2012/06/11(月) 04:37:31.74
ロードランナーでいいんじゃね?っすげー高いけど。
214デフォルトの名無しさん:2012/06/11(月) 09:20:35.28
勝谷誠彦 馬鹿どもに声高に抗議するのに疲れた今やるべき事

テレビで節電が叫ばれているが、そもそも昼間のテレビほど無駄なものはない。
無駄だけではなく、人をバカにする。公害である。
これだけ言われても電波を止めないというのであれば、私たちのライフスタイルを変えて観なければよろしい。
高校野球もだ。NHKの中継を一切観ない。いや、中継をしているのならば受信料を拒否する。
「みなさまのNHK」が節電に反する国賊行為をしているのである。当然のことだろう。
球児たちのためにも大会はやればいい。ただし、早朝試合とナイターにする。
熱中症についてあれほど報じながら炎天下で球児に試合をさせる朝日新聞の神経が私にはわからない。
馬鹿どもに声高に抗議するのにはもう疲れたし効果がないこともわかった。
だから私たちはゆるやかに生き方を変えて、奴らを不要なものにしてしまおう。
この柔らかな革命がうまくいけば、たとえば不当な税金に対しても、日本人は立ち上がるすべを覚えるかもしれない。
電力不足と、節電などを嘘つきどもが押しつけてくるこの夏は、日本人にとってあるいは歴史的な好機になるかもしれないのだ。
静かに、したたかに、この夏を楽しもうではないか。
こうすれば節電できる式の記事や番組も無視することだ。おまえらがそういうことをやめるのが、
いちばんの節電だ、ともうわかったのだから。

http://news.livedoor.com/article/detail/6622645/
215204:2012/06/11(月) 12:58:33.92
質問が曖昧だったみたいですいません。
フリーの単体テスト用のツールがあるか知りたくて質問しました。
216デフォルトの名無しさん:2012/06/11(月) 13:29:41.51
VB6の頃は自動テストなんて概念がなかったからな
217デフォルトの名無しさん:2012/06/11(月) 13:30:30.13
あったよ?
218デフォルトの名無しさん:2012/06/11(月) 13:50:32.51
マジで?
219デフォルトの名無しさん:2012/06/11(月) 15:13:47.45
vbunitとかbvunitとかそれっぽい名前で検索したら引っかかるだろ
220デフォルトの名無しさん:2012/06/12(火) 01:33:05.48
>>216
そんなことはないよ。
Windows3.1の頃にはMicrosoft謹製のGUI自動テストツールがあった。
その後、Windows2000が出るころには、GUIが複雑化したせいか、
いったん製品ラインナップから消えていった。

最近になって再びMicrosoft Testって製品が発売されてる。
221デフォルトの名無しさん:2012/06/12(火) 10:33:20.84
水車を何百年もかけて結局普及出来なかった国のお話

 エベンキ朝鮮猿の知能が犬や猿以下だったことの証明www

 ↓中国と日本から何度も輸入しているのだが・・・

1429世宗11年12月3日 日本の水車が凄いと報告
1430世宗12年9月27日 水車を造ろうとする
1431世宗13年5月17日 「中国も日本も水車の利を得ているが我が朝鮮にはそれがない」
1431世宗13年11月18日 日本と中国の水車の研究の記述が散見
1431世宗13年12月25日 水車導入を試みる
1451文宗元年11月18日 20年かけて水車の導入失敗
1488成宗19年6月24日 水車導入の試み(成否不明)
1502燕山君8年3月4日 水車導入の試み(成否不明)
1546明宗元年2月1日 水車導入の試み。琉球(沖縄)と中国から福建式水車輸入
以後百年間水車の記述無し 一方お隣り日本では、鉄砲伝来後3年目にはすでに量産体制。
1650孝宗元年5月15日 水車導入の試み 30年記述無し 一方お隣りの日本では、鉄砲量産10万丁
1679肅宗5年3月3日 水車を造らせたと記述。そして70年記述無し
1740英祖16年4月5日 水車など無くなりました『孝宗大王嘗頒遼瀋水車之制於外方, 今無見存者』
1740英祖16年11月20日 水車を造らせたと記述(18世紀時点でわざわざ記録に残す程?)
1764 1763-64年の朝鮮通信使「日東壮遊歌」(淀城の水汲み水車の感想)
「その仕組みの巧妙さ見習って作りたいくらいだ」と記述
1795正祖19年2月18日 水車之制について盛んに出てくる。つまり試作中
1811純祖11年3月30日 ここの記述で水車なんか必要なのか?と書かれており全く普及していない事が読み取れる
222デフォルトの名無しさん:2012/06/12(火) 15:38:47.08
>>221
ちょーくだらねぇ
死んでしまえ
正統派嫌韓厨なら民団総連解体について何か言えよクズ
223デフォルトの名無しさん:2012/06/12(火) 18:47:58.84
ネトウヨきもっ、まで読んだ。
224デフォルトの名無しさん:2012/06/17(日) 23:10:29.32
Visual Basic 6.0 IDE でマウス ホイール イベントを動作しません。
http://support.microsoft.com/kb/837910/ja


これは何
225デフォルトの名無しさん:2012/06/17(日) 23:12:39.72
何ってなんだ?書いてある通りじゃないか
226デフォルトの名無しさん:2012/06/18(月) 00:41:27.03
機械翻訳のせいで意味不明だってことなんだろ
きっと
227デフォルトの名無しさん:2012/06/18(月) 00:51:04.09
くそ翻訳はそのページにかぎった話じゃないしな。。。
228デフォルトの名無しさん:2012/06/18(月) 07:25:04.77
外人の「MSのドキュメントは難解だ」みたいなネタ見たことあるw
229デフォルトの名無しさん:2012/06/18(月) 07:37:51.91
this behaviour is by design

MSDNに慣れたせいかAppleのドキュメント読みづらい・・・
230デフォルトの名無しさん:2012/06/25(月) 14:38:49.24
ActiveX EXEで、アパートメントスレッドで、独立型起動可能に設定しています。
独立起動時にも、オブジェクト(スレッド)作成時にも、Sub Mainが呼ばれます。

独立起動の場合は、メインフォームを表示しますが
オブジェクト作成時には何もしないので、場合分けしたいです。
Sub Mainの後にClass_Initializeが呼ばれるので
オブジェクト作成予定なのか判断する方法はありませんか?
231デフォルトの名無しさん:2012/06/25(月) 20:57:28.87
>>230
なんだかよくわからない
232デフォルトの名無しさん:2012/06/25(月) 23:52:31.41
>>230
App.StartMode
233デフォルトの名無しさん:2012/06/26(火) 02:07:31.50
VB2製のプログラムはwin7では動かないんだな・・・
234デフォルトの名無しさん:2012/06/26(火) 09:38:03.94
VB2のソースがあればVB6に移行するのは
それほど大変じゃないと思う
235230:2012/06/26(火) 10:56:17.87
>>232 ありがとうございます。
まさにこれでした。
236デフォルトの名無しさん:2012/06/26(火) 11:11:20.77
237デフォルトの名無しさん:2012/06/26(火) 14:46:25.68
>>230
アパートメントスレッドにする理由は?
238デフォルトの名無しさん:2012/06/26(火) 14:51:48.52
アパートメントスレッドって何?
239デフォルトの名無しさん:2012/06/26(火) 18:51:18.42
>>238
アパートに住んでるレッドさん
240230:2012/06/27(水) 12:35:20.47
もちろん、マルチスレッドにするためです。
241デフォルトの名無しさん:2012/06/27(水) 20:13:20.42
プロセス上は確かにマルチスレッドだが・・・。
プログラムで同期制御できないプロセスをマルチスレッドと言ってよいものかね?
セマフォとかクリティカルセクションとかね。
242デフォルトの名無しさん:2012/06/27(水) 20:32:58.18
パイプとか使ってもできんんの?
243デフォルトの名無しさん:2012/06/27(水) 20:59:05.05
プログラム仕様としてはマルチスレッドではないけど
実行処理上はマルチスレッドと言って差し支えないはず
244デフォルトの名無しさん:2012/06/27(水) 23:13:20.39
そんなこと言ったらEXEからEXEを非同期起動してパラで動かせばマルチスレッドじゃんw

腹イテwww
245デフォルトの名無しさん:2012/06/27(水) 23:28:11.72
スレッド ⊆ プロセス ⊆ タスク
スレッドの定義からして
マルチスレッドとは呼べないものじゃないか
246230:2012/06/28(木) 08:24:28.73
>>241 どちらかというと、マルチスレッドなのに必ず同期処理になってます。
わざわざ、Formに追加したTimerから処理を開始しないと
非同期になってくれない、素敵仕様。
247デフォルトの名無しさん:2012/06/28(木) 08:46:04.52
.netにしたほうがいいと思うよ。
248デフォルトの名無しさん:2012/06/28(木) 08:57:14.11
マルチスレッドで同期処理とかもうねwww
SQL Serverの接続を並列させてコネクション数当たりのベンチマークとかには使えるかもね。
249デフォルトの名無しさん:2012/06/28(木) 10:30:17.13
初回起動に10秒もかかる言語に我慢できる人は
このスレに来ない方が良いよ。
250デフォルトの名無しさん:2012/06/28(木) 10:56:41.85
>>249
そんなこと言ったら4th Dimentionを使えないよ。
JITコンパイラがあるだけマシだよ。.netは。
251デフォルトの名無しさん:2012/06/28(木) 14:44:28.30
VBRJP200.DLLを%WINDIR%\SYSTEMに入れたらWin7でもVB2のプログラム動いた
252デフォルトの名無しさん:2012/06/28(木) 20:47:52.00
>>251
動くね。昔からあるプログラム作り直すのしんどいのでそれで対応した。
253デフォルトの名無しさん:2012/06/28(木) 23:32:07.25
win7でVB6 & DX8で作ったアプリ持ってったんだけど動かなかった
参照設定見たらDirectX 8 for Visual Basic Type Library (dx8vb.dll)が無かった (DX7も無いし)

まいったなあ・・・
254デフォルトの名無しさん:2012/06/28(木) 23:34:42.90
VB6はサポート切れなのかDX9の同様のライブラリがあればいいのにそれすらない
やはりVB6とはお別れの時期なのか
255デフォルトの名無しさん:2012/06/28(木) 23:38:00.81
VBRJP200.DLLと同様にdx8vb.dllを持ってくれば動くのかな
256デフォルトの名無しさん:2012/06/28(木) 23:43:27.22
Direct 3Dになったのに馬鹿?
257デフォルトの名無しさん:2012/06/28(木) 23:48:09.38
Download: DirectX End-User Runtime - Microsoft Download Center - Download Details
http://www.microsoft.com/ja-jp/download/details.aspx?id=35

>DirectX エンド ユーザー インストールには、最新の DirectX ランタイムとこれまでにリリースされたランタイムがすべて含まれます。
258デフォルトの名無しさん:2012/06/29(金) 03:39:21.15
dx8vb.dllを入れたけどダメだった

>>256
アプリで使ったのはDirectSound
259デフォルトの名無しさん:2012/06/29(金) 03:59:53.86
自作アプリは作り直すことも可能かもしらんが(面倒だしやらんが)
ネットで入手したフリーソフトとかはもうダメだな・・・有用なソフトを使えなくしたWin7の罪は重い
260デフォルトの名無しさん:2012/06/29(金) 10:04:36.89
ImgXという画像処理系のOCXがあるんだが
XPでは全く問題無く使えていたがWin7で使えない。
REGSVR32での登録は成功するのに
VB6でコンポーネンの一覧でを有効にすると読み込みエラーになる。
他の依存ファイルといっしょにC:直下のフォルダとか色々場所を変えて
登録しなおしても駄目。

一体何が起きているのだろう????
261デフォルトの名無しさん:2012/06/29(金) 10:19:41.37
>>260
そのOCXがWin7に非対応なだけじゃなく?
262デフォルトの名無しさん:2012/06/29(金) 10:54:17.18
>>261
そうだと思うけど。Win7に非対応なOCXって一体?
OSのバージョンチェックでもやってるとか?

すでに販売が終了してサポートも受けられない状況だけど
過去のフォーラムとか見るとWin7の64bit環境で動いている人もいるようだし
Win7非対応という線も疑わしいんだけど仕方ない。
263デフォルトの名無しさん:2012/06/29(金) 11:03:08.02
>>260
素直にXP互換モードでも使っとけ。
264デフォルトの名無しさん:2012/06/29(金) 11:54:26.96
>>263
開発環境をWin7 SP1に移行したばかりでそれはないよ。
ADOでSQL Serverに接続するアプリをWin7 SP1でビルドして
Win7無印や、Vista、XPで動かすとエラー。
この問題は解決したけど、こんなことがあるようじゃVB6もそう長くないと思った。
265デフォルトの名無しさん:2012/06/29(金) 13:16:04.44
何いってんだこいつ
266デフォルトの名無しさん:2012/06/29(金) 14:05:06.20
話について来れないなら無理して書き込まなくてもいいのに。
267デフォルトの名無しさん:2012/06/29(金) 14:20:37.10
内容を完全に理解した上で、何いってんだこいつって感じなんですが
268デフォルトの名無しさん:2012/06/29(金) 14:23:07.38
完全に理解してるのに「何いってんだ?」とかおかしくね?
269デフォルトの名無しさん:2012/06/29(金) 14:25:16.41
何いってんだこいつ
270デフォルトの名無しさん:2012/06/29(金) 14:44:38.76
VB6なんか使ってるからリピート変態になる。
271デフォルトの名無しさん:2012/06/29(金) 15:46:08.59
VB6で作ったアプリだって事がバレないようにする方法ってない?
272デフォルトの名無しさん:2012/06/29(金) 15:56:20.43
なんかうざいわ。
とりあえずお前ら全員ここ読み直せ。

Windows Vista、Windows Server 2008、Windows 7、および Windows 8 に対する Visual Basic 6.0 のサポートに関する声明
http://msdn.microsoft.com/ja-jp/vstudio/ms788708.aspx
273デフォルトの名無しさん:2012/06/29(金) 17:19:00.78
貼ろうと思ってたら貼られてた
販売・サポート終了したOCXもってきて、VB6も長くない、とか謎すぎる

>>271
それをしてどうするのかのほうが気になる…
274デフォルトの名無しさん:2012/06/29(金) 21:15:14.70
>それをしてどうするのかのほうが気になる…

C++で作ったように思わせて自慢したい。
275デフォルトの名無しさん:2012/06/29(金) 21:19:31.63
>>272
日本語読めんのか?

サポートされるのはランタイムだけだわ。

ここで問題になっているのはデザインタイムだろうが?

これだから、未だにVB6にしがみつく.net適応障害野郎はこまる。
276デフォルトの名無しさん:2012/06/29(金) 22:47:36.83
VB6、使い始めて10年目にしてはじめてImplements Interfaceを使った。
VB6の潜在能力ってすごいわ。
277デフォルトの名無しさん:2012/06/29(金) 22:49:19.95
どんな自虐ネタw
278デフォルトの名無しさん:2012/06/29(金) 23:15:45.53

Dim a As New ClassA 'Implements IFoo
Dim b As New ClassB 'Implements IFoo
Dim c As New ClassC 'Sub Hogeを持つ
Dim f As IFoo SubHogeを持つ
Dim v As Object

Set f = a 'OK
Call f.Hoge 'OK
Set f = b 'OK
Call f.Hoge 'OK
Set f = c 'NG
Set v = a: Call v.Hoge 'OK
Set v = b: Call v.Hoge 'OK
Set v = c: Call v.Hoge 'OK
279デフォルトの名無しさん:2012/06/29(金) 23:27:03.28
>>278
インタフェース継承なのだから当然だろ?
実装継承との違いもわからんのか?

氏ねアホ。
280デフォルトの名無しさん:2012/06/29(金) 23:51:54.10
warota
281デフォルトの名無しさん:2012/06/30(土) 00:07:41.30

まぁまぁ
282デフォルトの名無しさん:2012/06/30(土) 02:44:40.83
氏ねアホはないだろう
仕事で使ってる者から趣味で使ってる者までいるんだから
人様をアホ呼ばわりして優越感に浸る279の方がよっぽど狭い世界に生きてるアホだわ
283デフォルトの名無しさん:2012/06/30(土) 03:52:09.31
値からEnum名を取得方法ってある?

Enum HogeHoge
 ValueABC = 1
 ValueOK = 2
 ValueFoo = 3
End Enum

value = 2

Print なんかメソッド(HogeHoge, value) → "ValueOK"を返すみたいな

そんなメソッドとかある?
284デフォルトの名無しさん:2012/06/30(土) 07:31:24.34
>>282
仕事のほうが辛らつだよな・・・2chはあおりだって割り切れるけどさ・・
本当心が折れそう
285デフォルトの名無しさん:2012/06/30(土) 09:23:20.69
>>282
お前も遠まわしに人をアホ呼ばわりしてることに気づけアホ。
286デフォルトの名無しさん:2012/06/30(土) 09:24:06.58
>>283
strEnumName = 3.EnumName
287デフォルトの名無しさん:2012/06/30(土) 13:38:32.60
VB6でビルドしたアプリのプロセス名がThunderとかになってるんだけど
稲妻と関係があるの?
288デフォルトの名無しさん:2012/06/30(土) 15:13:48.89
>>275
すでに終わってる言語であって、ランタイムサポートだけ続いているものに
なにを期待してんだって話じゃね?
289デフォルトの名無しさん:2012/06/30(土) 15:14:45.74
>>284
Windows7にVB6とかいう指令がくると、折れそうです。 わりとマジで。
290デフォルトの名無しさん:2012/06/30(土) 15:18:18.74
本当にいまだにVB6使ってる企業なんてあるのか。
っていうか、言わぬが華かもしれんが、そんな会社に所属してる時点でいろんなものが折れ(
291デフォルトの名無しさん:2012/06/30(土) 15:31:25.58
MSが思い切ってVB6を使えないようにすりゃ解決するのにね
292デフォルトの名無しさん:2012/06/30(土) 16:31:02.75
>>290
つい先月、客先のVB6製システムの改修を行ったよ。
さすがに新規案件ではVB6はないね。自分とこだとJava、C#、VB.NETあたりかな。

そういえば、落札できなかったけど、入札に参加したシステムにもVB6のがあった。
293デフォルトの名無しさん:2012/06/30(土) 16:42:14.34
>>291
約10万企業が操業停止になるわ。
以外に多いのがサーバーサイドのActiveX開発にVB6が使われている件。
金融でも一部COBOLのサブセットに使用されている例もある。
以前に富士通が証券会社のシステムを止めて大騒動になった時
VB6で作ったシステムだけは問題無く運用できていたという。
294デフォルトの名無しさん:2012/06/30(土) 17:18:21.48
VB残したらいいのにね
DotNetは機能的に優れていても起動が遅すぎだわ
あと多機能だから
新人とかに書かせるとVBより酷いバグが出るイメージ
295デフォルトの名無しさん:2012/06/30(土) 17:52:43.94
>>287
初期開発コードネームが 「thunder」
296デフォルトの名無しさん:2012/06/30(土) 17:56:57.13
サンダー....杉山
297デフォルトの名無しさん:2012/06/30(土) 17:59:32.95
>>296
ぷっ!
298デフォルトの名無しさん:2012/06/30(土) 18:00:25.65
>>287
プロセス名じゃなくクラス名だろ?

ThunderRT6とか
299デフォルトの名無しさん:2012/06/30(土) 18:03:13.59
>>294
OCXとか開発ツールを販売しているGrapeCityとかがVB6を完全に蚊帳の外にしてるからなぁ。
.netで開発するのが当然とか、ある意味理解できるけど全ニーズをカバーしてないんだよね。
COBOL言語が今もなお健在なのが物語ってる。
300デフォルトの名無しさん:2012/06/30(土) 18:49:57.33
>>292
俺のところはいまだVB6健在だぜぇ?

正直触りにくくて困ってる。めんどくなって最近追加した機能はみんな
そのVB6.0とおさずにPerlでやっている
301デフォルトの名無しさん:2012/06/30(土) 19:45:40.19
VB6のCOBOL化決定かな
302デフォルトの名無しさん:2012/06/30(土) 19:57:59.14
>>293
日本企業の話?
海外企業のほうはVB6とかどういう状態なんだろうね
こちとら趣味グラマだから仕事とか業界の情報とか全くちんぷんかんぷんだ
303デフォルトの名無しさん:2012/06/30(土) 20:00:28.79
オブジェクトCOBOLという製品は存在するが

オブジェクトVB6は存在しない。

VB6の負けw
304デフォルトの名無しさん:2012/06/30(土) 20:29:09.92
問題なのはVB6自体じゃなくて
一緒に組み込んだサードパティ製などのランタイムのほうの新OSへの対応だな
305デフォルトの名無しさん:2012/06/30(土) 21:12:49.82
VB6はもとからオブジェクト指向言語
306デフォルトの名無しさん:2012/06/30(土) 22:31:49.67
なんか約一名、オブジェクト指向言語を知らない人がいるみたいね。
307デフォルトの名無しさん:2012/06/30(土) 22:45:52.92
Visual Basic - Wikipedia, the free encyclopedia
http://en.wikipedia.org/wiki/Visual_Basic

日本語版のwikipediaより細かい
308デフォルトの名無しさん:2012/06/30(土) 22:50:07.85
VB6はよくできた言語だが、今見ると時代遅れの感が否めない。
309デフォルトの名無しさん:2012/06/30(土) 22:50:36.28
>■Poor support for object-oriented programming[18]

ワロタ
310デフォルトの名無しさん:2012/06/30(土) 22:51:17.49
VB6でOffice 2010のようなタブ式のフォームって設計できますか?
311デフォルトの名無しさん:2012/06/30(土) 22:54:07.60

・The development environment is no longer supported by Microsoft.


ヲワタ・・・。
312デフォルトの名無しさん:2012/06/30(土) 23:01:01.80
Word2010開いてみたけど
タブってメニューのこと?
313デフォルトの名無しさん:2012/06/30(土) 23:16:11.77
>>311
死亡宣告はもう10年以上も前に出てるんですが。
今頃何をいってるんだマジで
314デフォルトの名無しさん:2012/07/01(日) 00:24:27.50
>>312
MDIの子ウィンドウがタブ単位にまとめられるデザインの事だと思うが?
MDIはMSが推奨してないからな。でも画像ソフトとかは画像を自由に比較できるんで
MDIの方が使いやすいんだが。
315デフォルトの名無しさん:2012/07/01(日) 00:55:15.92
タブブラウザなどのタブは
実は進化したMDIである
316デフォルトの名無しさん:2012/07/01(日) 01:09:07.28
親フォームにタブをつければいいのか?
317デフォルトの名無しさん:2012/07/01(日) 01:11:06.90
MSは推奨してないのに自前のOfficeにはのっけてるだか?
318デフォルトの名無しさん:2012/07/01(日) 04:41:11.48
とりあえずUAC切って一旦登録しちまうか互換モード使うかすればだいたい動く
特に互換モードなら95からVistaSP2までカバーしてるから結構動いてくれるよ
319デフォルトの名無しさん:2012/07/01(日) 10:31:47.36
>>299
OCXのサポート状況は気付かないフリして騙し騙し使ってるよ
320デフォルトの名無しさん:2012/07/02(月) 09:11:32.83
>>316
ばか?

>>317
MSのMDI廃止方針のために、Photo Editorとか使いやすいアプリがなくなってしまった。
321デフォルトの名無しさん:2012/07/02(月) 09:36:40.22
PhotoEditorが変なアプリに変わったのは衝撃だった
オヒスのアップグレードを断念しようかと思ったくらい
322デフォルトの名無しさん:2012/07/02(月) 09:54:58.11
>>321
PhotoDrawというソフトがあったでしょ?Office 2000に付いてきて
その後単独でPhotoDraw2という商品が出たけど。
PhotoEditor支持者なら、これの良さが理解できるはず。
マスターアップから10年以上経過した今も現役で活躍中。
思えばあのあたりを皮切りにMSがおかしくなったような気がする。
323デフォルトの名無しさん:2012/07/02(月) 10:15:23.89
>>319
「サポート」の意味は動作の保証を意味する場合が多く
「非サポート」でも問題無く動くのであれば自己責任で使えばよい。
問題は、OS依存の部分があって動かないもの。これはどうしようもない。
324デフォルトの名無しさん:2012/07/02(月) 10:16:03.86

MSがMDIを推奨しない理由は?
325デフォルトの名無しさん:2012/07/02(月) 14:28:24.61
日本語版のWikipediaのMDIの項目にMSが非推奨してるとかかれてるだけで
英語版のほうではMSについては書かれてないけど、どこぞでおきたMDIについての議論のアーカイブページへのリンクはあった

VS2010のページだがこれでもMDIは非推奨だから使って開発するなとかそういう文言は一言もない

マルチ ドキュメント インターフェイス (MDI) アプリケーション
http://msdn.microsoft.com/ja-jp/library/xyhh2e7e(v=vs.71).aspx
326デフォルトの名無しさん:2012/07/02(月) 14:34:58.62
Microsoft Windows ユーザー エクスペリエンス FAQ
http://msdn.microsoft.com/ja-jp/library/ms997581.aspx

アプリケーションには SDI と MDI のどちらを使用するべきですか?

大部分のプロダクティビティ アプリケーションには SDI (シングル ドキュメント インターフェイス) が適しています。
MDI (マルチドキュメント インターフェイス) は依然として使用されていますが、今日のユーザーとオペレーティング システムにはあまり合っていません。
ユーザーはより単純で使いやすいソフトウェアを求めています。
327デフォルトの名無しさん:2012/07/02(月) 15:41:13.66
Windows8のアレを考えると、ガキ&バカ用と一般用のどちらを作るか選べという事だわな
328デフォルトの名無しさん:2012/07/02(月) 16:12:09.46
複数の画像を比較しながら編集しようという時に、MDIなら編集対象の画像を並べて
アクティブ化し、共通のメニューとツールバーで効率よく作業できるが
これをSDIでどうやれと?
同じメニューとツールバーが付いた画面を複数並べて、それぞれのウィンドウに画像を表示させ
サイズを見やすいように調整し、タスクバーで切り替えながら作業をしろと?
329デフォルトの名無しさん:2012/07/02(月) 16:17:39.32
>>327
MSもWindows 8が失敗作であることは認識している。
Windows 8を失敗作にすることで、ひとつ前のWindows 7が良いもののように見える
錯覚効果に期待しているそうだ。
これでユーザーのXP離れが進めばMSのマーケティング思想に近づけることが出来る。
Windows 7もVistaより良くなった事が評価されているが、その存在価値については
未だにほとんど認められていない。

ユーザーはPCを買うとWindows 7が付いてくるから仕方なく使うが、我慢できないユーザーは
XPにダウングレードして使っている。MSはそんな事も知らずにWindows 7のユーザー数が
Windows XPのユーザー数を超えたとか発表するが、実際はまだまだXPのユーザーの方が多い。
330デフォルトの名無しさん:2012/07/02(月) 16:22:34.45
>>329
毎回同じ事言ってるだろお前w
331デフォルトの名無しさん:2012/07/02(月) 16:25:42.09
>>328
「複数のファイルを開くアプリ」は「大部分のプロダクティビティ アプリケーション」には含まれないということでは?
332デフォルトの名無しさん:2012/07/02(月) 16:28:42.21
>>331
つまり、「マイノリティ」は氏ねと?
いかにも企業ユーザー擁護第一で、一般ユーザー二の次にして
見事にアップル社にコンシューマIT業界のトップの座を譲り渡した
マイクロソフト社らしい見解だな。
333デフォルトの名無しさん:2012/07/02(月) 16:38:59.09
>>332
その「企業ユーザー擁護第一」のお蔭で今日VB6が健在であることも忘れないように…。
334デフォルトの名無しさん:2012/07/02(月) 16:47:41.28
ttp://www.forest.impress.co.jp/docs/news/20120508_531083.html
複数のウインドウという概念があかんやったんや
335デフォルトの名無しさん:2012/07/02(月) 16:52:06.16
>>334
>「あちこちに散らばったダイアログをひとつのウィンドウにまとめて利用することが可能」

ダイアログを単独に複数表示させて使いずらくする事とMDIとは何の関係もないと思うが?

336デフォルトの名無しさん:2012/07/02(月) 16:57:42.02
関係ないならなんなの?
337デフォルトの名無しさん:2012/07/02(月) 17:00:48.33
MDIを推奨しないのは大多数のニーズがないって理由って事でFA?
少数派のニーズのために推奨はしないけど使わせてもらえる事に感謝しろとでも?
Visual Studio 2010でMDIで設計すると親ウィンドウでイベントが一切取れない。
それができるVB6はその意味でも素晴らしい言語システムだと思った。
338デフォルトの名無しさん:2012/07/02(月) 17:16:51.60
OSがハードのリソースの大部分を持って行ってしまうという構図が大多数のユーザーに受け入れられなかったMSの負け。
その逆にアップルはOSをシンプルにして最大のビジュアライズをOSとアプリの両面からサポート。
この方向性に気づいて慌ててでっち上げたのがWindows 8。ボーナス欲しさに技術者が必死に作った作品。
技術者が夢を追ったアップルと金を追ったMS。この先はもう見えている。
唯一MSが巻き返せるすれば、iPadで動く.netフレームワークを作り、Visual Studioで開発可能にする事だけだろうね。
339デフォルトの名無しさん:2012/07/02(月) 17:20:37.00
>>332
どうしてそうなるかな。

MDIこそが適切なアプリケーション(複数のファイルを同時に開くアプリケーションなど)以外のアプリでは、
MDIよりSDIの方が適してるよ、というだけのことでは?
340デフォルトの名無しさん:2012/07/02(月) 17:21:20.28
341デフォルトの名無しさん:2012/07/02(月) 17:26:37.60
>>339
はじめからそう言っていれば良かったのにね。
MDIについて誤解を招く表現が横行してしまっているのが悲しい。
342デフォルトの名無しさん:2012/07/02(月) 17:29:48.46
>>340
Novell社って、あのNetwareのノベルのこと?
俺、CNEの資格持ってたんだけど、あれってまだ有効なのかな?
前の前の前の会社で取得したけど、かなり金がかかったらしい。
試験は全科目一回で合格したけどな。
過去物のおかげだがw
343デフォルトの名無しさん:2012/07/02(月) 17:33:28.18
なにいってんだこいつ
344デフォルトの名無しさん:2012/07/02(月) 17:34:24.88
>>342
俺は3回でやっと全科目合格した。貴君は優秀だね。
345デフォルトの名無しさん:2012/07/02(月) 18:06:03.59
片山議員は参加者に囲まれながら、「民主党政権になってから、生活保護の不公平が見逃すことができないところに来ている。
外国人の不正受給に関しても、まずは日本人の、真面目に義務を果たしている人が優先。
今は特に、韓国なんてすごく豊かなんですから」と持論を展開し、

「私に対してもいろいろ嫌がらせがあったが、どこから来ているかはわかるんですよね。私たちの日本を愛するマグマの方が強いことを教えよう。
日本が正直者が報われる、本当に強い国にもう1度なれるように、私たちががんばりましょう」
と呼びかけると、参加者からは大きな拍手が起こった。

http://www.j-cast.com/2012/07/01137691.html?p=all
http://www.j-cast.com/images/2012/news137691_pho01.jpg
http://www.j-cast.com/images/2012/news137691_pho02.jpg


http://engawa.2ch.net/test/read.cgi/poverty/1341150152/
http://engawa.2ch.net/test/read.cgi/poverty/1341153256/
346デフォルトの名無しさん:2012/07/02(月) 18:18:54.10
野田は誰もが認める売国奴だが、隣国と経済的に良い関係をもつことは悪くない。
347デフォルトの名無しさん:2012/07/02(月) 18:30:45.81
趣味VB6なんですが、最初表示されてたツールバーのツールチップがいつの間にか
表示されなくなるのはバグ?本当のところは表示はされてるけどフォームの
後ろに隠れて見えなくなってるんですよね。ツールチップの意味ないわw 
348デフォルトの名無しさん:2012/07/02(月) 18:35:24.24
>>346
日本のODA = N-ODA = NODA
349デフォルトの名無しさん:2012/07/02(月) 18:38:44.85
>>347
VB6のIDEをWindows 7で使っていると
検索文字欄に入れた漢字が化けて全角検索できない。
一番困るのはファイルをセーブするときで、文字が化けるので保存できないw
350デフォルトの名無しさん:2012/07/02(月) 20:24:30.07
XPモード使えばいいのに
351デフォルトの名無しさん:2012/07/02(月) 20:47:17.66
開発環境と実行環境は同じであるほうが望ましい。特にOSのバージョンはね。
352デフォルトの名無しさん:2012/07/02(月) 20:53:14.75
古いシステムから新しいシステムに切り替えることでIT特需が発生して金が回り景気がよくなるとかないのかな
いつまでも昔々に作ったシステム使いまわしてメンテするのはいかがなものかと
だからMSは旧VBを一切動作しないようにすべきだったのさ
353デフォルトの名無しさん:2012/07/02(月) 22:29:06.04
VB6を残すのはゲイツ会長の勅令だっつーの。
354デフォルトの名無しさん:2012/07/02(月) 22:37:34.44
病院行けよカス
355デフォルトの名無しさん:2012/07/02(月) 22:38:30.24
VB6が残ってなければMS系の開発者は半減していただろう。
MSの判断は正しかったと思うが?
356デフォルトの名無しさん:2012/07/02(月) 22:49:00.71
逆だな。
新しい技術を取り込めない人間を殺さずに、生かしてしまった。
昔で言う、コボラーだ。給料は高いくせにVB6しかできない。しかもクビにできない。
357デフォルトの名無しさん:2012/07/02(月) 22:51:19.76
俺はVisual Studio 2010を使用して主にC#で開発をしているがVB6もたまに使う事がある。
XPからランタイムがデフォで入ってるから手軽にツールをリリース出来て重宝している。
言語なんてそもそも道具なんだからその程度のノリで使うものだろ?
考え方が重すぎるんだよキミらはwww
358デフォルトの名無しさん:2012/07/02(月) 22:53:50.05
コボラーを馬鹿にしてる奴がいるようだが重要なのは業務知識。
最先端の言語を使いこなせても金融の知識が無ければ銀行システムには手が出せないだろうが?
銀行系の案件はコボラーが占めている。口惜しかったら.netとSQL Serverで金融システムを構築してごらん。
359デフォルトの名無しさん:2012/07/02(月) 22:56:15.19
銀行再編でデータぶっこわしまくった奴がえらそうに。
360デフォルトの名無しさん:2012/07/02(月) 22:56:34.04
最も大きな弊害は、頭の足りない人間的にも問題がある若造が最先端の言語を使って自慢してる事。
最先端の言語が悪いのではなく、使う奴に欠陥人間が多いので評判が悪くなり浸透しない。
VB6はプログラマーがいいおっさんになっているので、人間的にも成熟した人が多く使う。
よって、まともな仕事をしてくるので仕事を依頼しやすい。
361デフォルトの名無しさん:2012/07/02(月) 22:57:22.37
>>360
おっさん乙

362デフォルトの名無しさん:2012/07/02(月) 23:00:24.56
.netで財務系システムを構築する案件が地に落ちた例
http://www.nikkei.com/article/DGXNASFK0902S_Z00C12A4000000/

COBOLにしておけば今頃両者とも円満な関係だったろうに。。。
363デフォルトの名無しさん:2012/07/02(月) 23:23:03.12
>>362
記事からすると、海外製パッケージと邦銀の業務要件に乖離があったりで、
要件定義で既におかしくなってたようだから、COBOLでも同じ結果だったんじゃない?
364デフォルトの名無しさん:2012/07/02(月) 23:41:39.61
100億の仕事とかよくやるわ
俺は300万くらいのでいいや
365デフォルトの名無しさん:2012/07/03(火) 02:35:31.20
VB6.0のものを新しくするのにお勧めの言語はありますか?

.NETも同じようにめんどい移植しないとだめになるっぽいですか?
366デフォルトの名無しさん:2012/07/03(火) 02:49:11.14
>>365
つVB.Net
そこそこのスキルを持ったPGならC#を進めたいが、
期待出来ないならば開き直ってVB.Net。
ツールと手作業で適当に移行したらいいよ。
367デフォルトの名無しさん:2012/07/03(火) 04:18:21.63
>>366
やっぱ適当になりますよね・・・

どうせデータ加工部分だけまともに移行できればいいですしね。
368デフォルトの名無しさん:2012/07/03(火) 08:53:22.60
俺はVB.NetでプログラミングしてコンバーターソフトでC#に変換して提出している。
逆の変換は難しいようなのでVB.Netの一択。
しかし、これからの時代、>>340 みたいのも出てくるんでC#をおすすめする。
369デフォルトの名無しさん:2012/07/03(火) 09:06:44.90
VB6ソース渡されてこれ移行してなんて言われたら
VBライクなソースになるのは仕方ないと思う
それで後悔する事は十分にあり得るよ
370デフォルトの名無しさん:2012/07/03(火) 09:21:19.63
VB6ソースを渡されたら、VB.net出作り直すという発想はVBしかできない人が言う事。
オールマイティーならC#を選ぶと思う。仕事を技術力のある人に引き継げるメリットは大きい。
371デフォルトの名無しさん:2012/07/03(火) 09:24:02.51
Scale ModeをUserにして自由なスケーリングモードで設計したソースがある。
たとえばグラフ表示機能で、伸縮してサイズを変えてもゲージが追従する優れものなんだが
これをピクセル単位一択の.net環境に移行するにはどうしたらいいだろう?
372デフォルトの名無しさん:2012/07/03(火) 09:34:52.63
>>370
理想はね。
コンバーターで済む作業をオールマイティなPGに頼むなんて勿体無いわ。
373デフォルトの名無しさん:2012/07/03(火) 11:46:23.17
C#のコンバータ使うんじゃないだろうか。
374デフォルトの名無しさん:2012/07/03(火) 12:04:29.71
以降ツールというと>>69か?
375デフォルトの名無しさん:2012/07/03(火) 12:39:56.52
>>371
そういうのに限らずTwipsでスケールしているようなプログラムは
コンバートを考えずにゼロから作り直した方がいい。
ゼロから作るよりスケール調整の方が時間がかかるぞ。
376デフォルトの名無しさん:2012/07/03(火) 12:46:21.54
デフォルトがTwipsだからな
一番最初VB6を始めたときびっくりしたわ
思うように絵が描けなくって
377デフォルトの名無しさん:2012/07/03(火) 12:56:28.40
>>376
デフォがTwipsなのは問題無い。それはピクセルにコンバート可能だから。
問題はTwipsの特性、つまり画面サイズ変更に同期したスケーリング特性を
利用したプログラムだとヤバイ。
思う様に絵が書けなくてピクセルにスケーリングして書いていたのなら問題ない。
378デフォルトの名無しさん:2012/07/03(火) 12:57:50.92
逆に、.netでTwipsみたいなスケーリングはできないの?
アンカー機能とかで代用しろとでも?
379デフォルトの名無しさん:2012/07/03(火) 13:07:56.71
>>378
http://www.lyoung.com/download.htm

シリアルナンバー: RXZ00852927741

製品として使えます
380デフォルトの名無しさん:2012/07/03(火) 14:39:03.08
Dim Strs() As String
result = Join(Strs, Delimiter)
で配列を結合できるように、
ListBox.ListやCollectionを結合する関数はありませんか?
result = result & ListBox.List(N) & Delimiter
みたいにしていくしかありませんか?
381デフォルトの名無しさん:2012/07/03(火) 14:41:33.36
コントロールの特定プロパティをループで抽出しながら連結しかないでしょ。
382デフォルトの名無しさん:2012/07/03(火) 14:41:38.47
配列に入れてjoinすれば?
383デフォルトの名無しさん:2012/07/03(火) 14:42:22.50
配列に入れる分無駄なステップじゃない?
384デフォルトの名無しさん:2012/07/03(火) 14:44:46.38
ExJoinを使うがよろし
385デフォルトの名無しさん:2012/07/03(火) 15:38:46.41
>>384
できました。ありがとうございました。
386デフォルトの名無しさん:2012/07/03(火) 16:53:25.00
ExJoinって何?
ググってもよくわからない。
387デフォルトの名無しさん:2012/07/03(火) 17:37:35.41
えっ?
388デフォルトの名無しさん:2012/07/03(火) 20:01:06.23
俺が作ったライブラリだよ。
389デフォルトの名無しさん:2012/07/03(火) 20:01:58.72
ExJoinを更にパワーアップしたものに
Super EXJoinというものがある
略して
390デフォルトの名無しさん:2012/07/03(火) 21:34:18.64
Super EXJoir
391デフォルトの名無しさん:2012/07/03(火) 22:36:23.12
SEX SEX SEX SEX もう二回♪

何の歌か分かったらおっさん。
392デフォルトの名無しさん:2012/07/03(火) 23:32:49.04
モニカ

by 吉川晃司
393デフォルトの名無しさん:2012/07/03(火) 23:34:07.58
394デフォルトの名無しさん:2012/07/04(水) 00:48:43.10
>>391
サンクス サンクス サンクス サンクス モ〜ニカ〜♪

でねーの?
395デフォルトの名無しさん:2012/07/04(水) 00:51:15.71
今時VB6を使ってる奴らときたらもうね。。。
396380:2012/07/04(水) 10:29:27.85
>>381>>382>>383を検証してみました。

Const STR_LEN = 100: Const NUM = 10000
Dim Col As New Collection
Private Declare Function QueryPerformanceCounter Lib "kernel32" (lpPerformanceCount As Currency) As Long
Private Declare Function QueryPerformanceFrequency Lib "kernel32" (lpFrequency As Currency) As Long
Dim QPF As Double
Function QueryPerformanceTime() As Double
Dim Q As Currency: QueryPerformanceCounter Q: QueryPerformanceTime = Q / QPF
End Function
Function RndStr() As String
Dim Length As Long, N As Long: Length = Int(Rnd * STR_LEN)
For N = 0 To Length: RndStr = RndStr + Chr$(65 + Int(Rnd * 26)): Next
End Function
397380:2012/07/04(水) 10:30:57.65
Private Sub Form_Load()
Dim Q As Currency: QueryPerformanceFrequency Q: QPF = Q
Dim N As Long, Tmp As String, Result As String, Start As Double
ReDim Ary(NUM - 1) As String
For N = 0 To NUM - 1: Tmp = RndStr: List1.AddItem Tmp: Col.Add Tmp: Next
Start = QueryPerformanceTime: Result = List1.List(0)
For N = 1 To NUM - 1: Result = Result & " " & List1.List(N): Next
Debug.Print "リスト連結ループ: " & (QueryPerformanceTime - Start)
Start = QueryPerformanceTime: Result = Col(1)
For N = 2 To NUM: Result = Result & " " & Col(N): Next
Debug.Print "コレクション連結ループ: " & (QueryPerformanceTime - Start)
Start = QueryPerformanceTime
For N = 0 To NUM - 1: Ary(N) = List1.List(N): Next
Result = Join(Ary, " ")
Debug.Print "リスト→配列→Join: " & (QueryPerformanceTime - Start)
Start = QueryPerformanceTime
For N = 0 To NUM - 1: Ary(N) = Col(N + 1): Next
Result = Join(Ary, " ")
Debug.Print "コレクション→配列→Join: " & (QueryPerformanceTime - Start)
End Sub
398380:2012/07/04(水) 10:32:16.66
リスト連結ループ: 5.54018901123163
コレクション連結ループ: 5.95872308630715
リスト→配列→Join: 1.69191073728143E-02
コレクション→配列→Join: .30237460158969

配列のほうが圧倒的でした。

中でどうなってるかよく分かりませんが、
連結ループは、(文字数×個数)^2のオーダー?
配列JOINは、文字数×個数×2?

Cでやると、文字数×個数×1でできそうな気がしないでもない。
APIでリストボックス要素の文字数をO(1)オーダーで取得できますか?
399デフォルトの名無しさん:2012/07/04(水) 12:14:41.15
>>395
それは移行済みのやつらが上から目線でいう言葉
400デフォルトの名無しさん:2012/07/04(水) 13:13:23.59
>>398
そりゃ、ループの内側で1ループあたりコントロールに2回もアクセスすりゃ当然だろ。
401デフォルトの名無しさん:2012/07/04(水) 13:14:31.21
意図して差をつけたかったんだろ?察してやれ。
402デフォルトの名無しさん:2012/07/04(水) 13:35:08.41
たしか前にテスト用のテキスト生成するコードがこのスレに挙げられてたよな
Stringの&連結ではなくJoinで一気に生成してたような
403デフォルトの名無しさん:2012/07/04(水) 13:39:39.18
わざとマーシャリングを発生させるとかもうね・・・。
オワットル
404デフォルトの名無しさん:2012/07/04(水) 13:41:23.43
>>403
マーシャってフジテレビの歌が上手な女子アナ?
405デフォルトの名無しさん:2012/07/04(水) 13:49:34.88
Colの参照2回かよ?
406デフォルトの名無しさん:2012/07/04(水) 13:50:32.97
>>404
はぁ?
407デフォルトの名無しさん:2012/07/04(水) 14:20:47.07
正しい例を
408380:2012/07/04(水) 16:14:34.65
>>400>>401>>405 すいません、どこが2回アクセスに相当するのか教えていただけませんか。

For N = 1 To NUM - 1
Result = Result & " " & List1.List(N)
Next

For N = 2 To NUM
Result = Result & " " & Col(N)
Next

VBのコードが、Cのコードでどういう風に表現されるのかよく分からないもので…

>>403 マーシャリングは標準EXEでも発生するのですか?
マーシャリングしないようにするためには、どのように書けば良いですか?
409デフォルトの名無しさん:2012/07/04(水) 17:49:40.56
標準コントロールがどういうものか分かってないらしい。
410デフォルトの名無しさん:2012/07/04(水) 17:51:13.99
いや、どちらかといえばVB6でのコレクションの参照の方が問題だろ?
411デフォルトの名無しさん:2012/07/04(水) 17:51:45.43
>>410
はぁ?
412デフォルトの名無しさん:2012/07/04(水) 21:48:04.79
韓国教授(88)が告白 「殺される覚悟で言う。韓国人は強制従軍慰安とか歴史捏造をやめるべきだ」 ★2
http://engawa.2ch.net/test/read.cgi/poverty/1341400277/

http://yeoksa.blog.fc2.com/page-0.html
韓国の88歳の大学教授がハングルで書いた文章です。日本語訳します。

"私は88才です。 もう事実を話したいと思います。" [チェ・キホ伽耶大学客員教授]
朝鮮末期の私は1923年の生まれです。 もう韓国のためでも、日本のためでもなく「事実」を話したいと思います。
それは相当な覚悟が必要です。 生命の危険も覚悟しています。 しかし、これは私の使命であると信じています。

私はソウルに住んでいました。 そして、時々、平壌や東京に行きました。 その当時の韓国人は「日本人以上の日本人」でした。

「親切でやさしい日本人」という印象を、必死に消すために「反日」を指導者はそそのかしてきました。
韓国と日本の歴史教育を比較すると、日本が10%の歪曲といえば、韓国は90%が歪曲です。

朝鮮末期の正常ではないで政治腐敗を教えず、日本が関与しなければ独立ができたことのように使われています。
韓日合邦によって「教育」 「医療」 「工業」 「社会インフラ」が整備されました。近代国家の基礎が出来たことは明らかな事実です。

その実績を「日本帝国主義の侵略政策の産物だ!」と糾弾する韓国にはあきれます。 より一層「日帝が民族産業を停滞させた!」
という主張にはコメントする気持ちもなくなります。

民族産業を殺したのは、朝鮮王朝です。 近代化を主張する先進的な思想家は反逆者とし、親族までも処刑されました。
韓国人は「日帝の虐待! 性奴隷!」と叫んでいますが、私は信じることができません。 歴史の真実を知っているためです。

朝鮮語でキウン「地獄」でした。 それは大韓帝国時代になっても同じでした。
1904年、日本は朝鮮の惨状を救うために、財政支援を決断します。
例えば1907年度、朝鮮王朝の歳入は748万円だったが、歳出は3000万円以上でした。
その差額は日本が負担していました。 1908年にはより一層増加し、3100万円を支出しています。

現在88才の老人の絶叫です。 どう思われますか?
413デフォルトの名無しさん:2012/07/04(水) 21:59:55.44
ネトウヨきもっ、まで読んだ。
414デフォルトの名無しさん:2012/07/04(水) 22:31:56.32

For N = 1 To NUM - 1
    Result = Result & " " & List1.List(N)
Next

For N = 2 To NUM
    Result = Result & " " & Col(N)
Next

どうでもいいがインデントくらい付けろや。
お得意のCやC++でもスットンなコーディングしてるんやろか?
415デフォルトの名無しさん:2012/07/04(水) 22:33:37.28
>>414
統合失調さん?それとも単純に頭がおかしいのか?
唐突に何を言ってるんだ
416デフォルトの名無しさん:2012/07/04(水) 22:34:47.15
あらあら、張り付いてたのね?

へんたいwww
417デフォルトの名無しさん:2012/07/04(水) 22:36:13.34
ネスティングも一列に頭揃えて書いてそw
418デフォルトの名無しさん:2012/07/04(水) 23:07:10.65
void foo (void)
{
Foo();
if (CONDITION){
bar();
}
Bar();
}
419デフォルトの名無しさん:2012/07/04(水) 23:23:26.05
こ、こぇ〜w
420デフォルトの名無しさん:2012/07/04(水) 23:30:27.92





 猫ひろし+鳥羽一郎÷2=出村課長?








421デフォルトの名無しさん:2012/07/04(水) 23:36:09.38
2chにそのままコード貼り付けたら
半角スペースやタブは削除されるから
インデント無くなるのはふつうだろ
422デフォルトの名無しさん:2012/07/04(水) 23:39:25.78
下手な言い訳数ウチャ当たるってか?
423デフォルトの名無しさん:2012/07/04(水) 23:40:27.26
>>421
コラ!開き直るな!
それを考慮して見やすいコーディングが出来なかった
己の無力さを恥じよ!
424 忍法帖【Lv=40,xxxPT】 :2012/07/04(水) 23:42:52.02
VB6でWindows 8のような横に画面がスライドして減速しながら止まるようなデザインは可能ですか?
どうしてもやってほしいというクライアントがいて困っています。

よろしくお願い致しますm(_ _)m
425デフォルトの名無しさん:2012/07/04(水) 23:50:26.50
画面がスライドして減速しながら止まるようなコードを書けばいいのでは?
426デフォルトの名無しさん:2012/07/05(木) 02:17:42.06
中国人と韓国人にはない DNAのD系統 を 日本人はもっていることが判明
http://engawa.2ch.net/test/read.cgi/poverty/1341414504/


画像
http://stat.ameba.jp/user_images/20110304/19/umepino/68/53/j/o0475037711089589457.jpg


日本人はY染色体DNAのD系統を高頻度で持つ事で有名である

世界的にもチベット人や中近東の人だけがこのDNAをもっているが、
他の世界のどこにもほとんど存在しない。

さらに日本のすぐ近くの朝鮮半島や中国人が南方系O系統であり、
孤立したD系統を持つ日本人の異質さが際立って見える。

http://kirinukityo.tumblr.com/post/12942190189/maido3-y-dna-d

427デフォルトの名無しさん:2012/07/05(木) 08:47:18.88
>>425
具体的には?
428デフォルトの名無しさん:2012/07/05(木) 09:20:57.70
えっ
429デフォルトの名無しさん:2012/07/05(木) 09:28:48.33
具体的にって、まさかコード要求してるのか?
おまえの仕事をロハで俺らにやれと?
430デフォルトの名無しさん:2012/07/05(木) 09:31:10.77
えっじゃねーだろ?言ったからにはコードサンプル提示するのがマナー
431デフォルトの名無しさん:2012/07/05(木) 09:33:55.01
>>429
出来る奴ならそんな事をグダグダ言ったりせずにコードをすらっと書いて終わる。
何もできない4流プログラマが自分のスキルの無さをグダグダと垂れ流し続けるものさ。
VB6ごときに出来る事には限界がある。
432デフォルトの名無しさん:2012/07/05(木) 10:36:36.45
>>429
ロハって久々に聞いた

Windows8は知らないがフォームを動かしたいのなら
タイマーで適当にMe.Moveの座標をずらしていけばよかろう
X=X+増分
の増分の値を段々減らしていけば原則したように見える。

ただ標準的な物と違うことをやると絶対違和感感じてくるから
頭を冷やしてもらうか素直にWindows8にリプレース案件出してもらうかだな
433デフォルトの名無しさん:2012/07/05(木) 10:58:49.81
>>432
Windows 8って言ってんだから動かしたいのはフォームじゃなく画面上の画像だろ?
例えばフルスクリーン全体を黒一色にして、フォルダ内の画像を左右に
速度変化を持たせてスライドする感じだろうか。

仕事でも顧客の要求事項をくみ取れない社員がいて困るが
ネットでも同類項に遭遇するとは余程俺の人運はないんだろうなw
434デフォルトの名無しさん:2012/07/05(木) 11:03:21.18
初速に応じて減速カーブが変化するから物理特性を持たせる必要がある。
物理数学に弱い人だと組めないだろうね。
面倒だから動作プラットフォームをWindows 8限定にすれば
デフォでその機能が付いてくるんだけど
それじゃダメなのかな?w
435380:2012/07/05(木) 12:13:12.40
>>409>>410 どういう問題があるのか教えていただけませんか?
Result = Result & " " & List1.List(N)と同じ効果で、
もっと高速な書き方があるなら、教えていただけませんか?

>>414>>423書き込み回数も文字数も行数も制限されているので
インデントや改行は勘弁してください。
436デフォルトの名無しさん:2012/07/05(木) 12:16:32.90
慇懃無礼なやっちゃな・・
437デフォルトの名無しさん:2012/07/05(木) 12:33:41.52
>>435
別に問題無いと思う。
ただ、インデントや改行は心掛けた方が良かろう。
元より連投してるのだから文字数や行数の制限とか
言い訳にもなっていない気が汁。
438380:2012/07/05(木) 13:07:45.67
以前4回までしか書けなかったことと、
連投ではなくて、単位時間あたり何回と決まっているようだったので、
誰かが書いてもレスできなくなる可能性を考慮して
3回で収めさせていただきました。
見にくくてすいませんでした。
439デフォルトの名無しさん:2012/07/05(木) 14:06:49.36
そんなに間髪入れずに書き込みされるほど勢いのあるスレでもないでしょうに。。。
でも、あまり気にしないでね。あなたは悪い事は何もしていないのだから。
440デフォルトの名無しさん:2012/07/05(木) 20:48:22.55
> あなたは悪い事は何もしていないのだから。

ゴミのポイ捨てぐらいしてるだろ。
441デフォルトの名無しさん:2012/07/07(土) 11:41:35.49
getbitsをVB6でコーディングするとどうなりますか?

unsigned getbits(unsigned x, int p, int n)
{
return (x >> (p + 1 - n)) & ~(~0 << n);
}

VB.netだとシフト演算子があるのですが…。
442デフォルトの名無しさん:2012/07/07(土) 13:21:03.69
手元にVB6が無いので動作するか試せない
Function getbits(x as Long, p as Integer, n Integer) as Long
getbits = Int(x / (2 ^ (p - n + 1))) And (2 ^ n - 1);
End Function
443デフォルトの名無しさん:2012/07/07(土) 14:15:23.92
横レスだが
unsignedとLongの違いは大丈夫なん?
444デフォルトの名無しさん:2012/07/07(土) 14:17:41.36
VB6の簡単なコードってVBAかVBSの実行環境あれば試せる?
445デフォルトの名無しさん:2012/07/07(土) 14:27:31.76
何か変だと思うこのコード>>441
っていうか、pだのnだの適当な名前付けるなよ
446デフォルトの名無しさん:2012/07/07(土) 14:33:42.12
>>445
変数名が変わったくらいでオタオタしてしまう初心者かよ?
恥ずかしいなw
447デフォルトの名無しさん:2012/07/07(土) 14:35:00.17
>>446
カーニハン&リッチ型に合致しないとエラーになる値なんだろうよwwww
448デフォルトの名無しさん:2012/07/07(土) 14:45:48.07
>>446-447
馬鹿だろお前
449デフォルトの名無しさん:2012/07/07(土) 14:48:15.25
>>448
もちつけ。
450デフォルトの名無しさん:2012/07/07(土) 14:48:56.88
>>448
ああ、馬鹿型と言うのかwww
451デフォルトの名無しさん:2012/07/07(土) 14:50:21.84
>>442
ビルドしたらエラーが出た。
理由の1つは末尾のセミコロン。
さて、もう一つはなんでしょうか?
452デフォルトの名無しさん:2012/07/07(土) 14:53:44.19
引数のn IntegerになっててAsが抜けてる
453デフォルトの名無しさん:2012/07/07(土) 14:56:26.28
>>452
正解!!
454デフォルトの名無しさん:2012/07/07(土) 14:58:53.39
~(~0 << n); → (2 ^ n - 1) の下りは流石だが

Int(x / (2 ^ (p - n + 1))) は x \ (2 ^ (p - n + 1))

方うが良かったかも。
455デフォルトの名無しさん:2012/07/07(土) 15:05:20.77
~(~0 << n); → (2 ^ n - 1) 

これ違うくね?

前者は0の反転をnビット左シフトして反転でしょ?

後者は1をnビット左シフトじゃね?
456デフォルトの名無しさん:2012/07/07(土) 15:06:34.63
>>455
正しかったけど?
457デフォルトの名無しさん:2012/07/07(土) 15:06:53.69
Int(a / b) と a \ b はどちらのほうが処理が速いのだろうか
458デフォルトの名無しさん:2012/07/07(土) 15:07:26.91
>>455
初心者丸出しw
プゲラ…w
459デフォルトの名無しさん:2012/07/07(土) 15:08:27.65
>>455
バカ
460デフォルトの名無しさん:2012/07/07(土) 15:09:00.15
>>455
これは酷い
461デフォルトの名無しさん:2012/07/07(土) 15:11:16.90
頭の悪い奴がチーム内にいると苦労が絶えない
462デフォルトの名無しさん:2012/07/07(土) 15:17:17.04
>>454
どっとにしろそれでは算術シフトになってしまうから正しくないな
463デフォルトの名無しさん:2012/07/07(土) 15:18:18.99
っていうか、だからそもそも>>441のコードは何がしたいんだ?
意味あるのかこんな処理
464デフォルトの名無しさん:2012/07/07(土) 15:18:35.60
>>457
Start = QueryPerformanceTime

n = 0
For p = 0 To 65535
  Int(x / (2 ^ (p - n + 1))) 
  n = n + 1
Next
n = 0
Debug.Print "Int ループ: " & (QueryPerformanceTime - Start)

For p = 0 To 65535
  x \ (2 ^ (p - n + 1))
  n = n + 1
Next
Debug.Print "\ ループ: " & (QueryPerformanceTime - Start)

Int ループ: 4.37367566178261
\ ループ: 1.41347460158969


随分違うものだな。

465デフォルトの名無しさん:2012/07/07(土) 15:19:39.33
>>463
C言語の教科書に載ってるだろ。バカかこいつら?www
466デフォルトの名無しさん:2012/07/07(土) 15:20:34.42
>>462
いや、問題無い。
467デフォルトの名無しさん:2012/07/07(土) 15:21:14.26
さすがVB6の巣窟だけあってバカばっかりだなw
468デフォルトの名無しさん:2012/07/07(土) 15:23:42.53
なるほど、>>465にとってはK&R(C言語の教科書てw)の内容を覚えていることが
バカでない条件なのか。

ずいぶんと馬鹿っぽい定義だな。
469デフォルトの名無しさん:2012/07/07(土) 15:24:20.30
>>466
問題あるよ。
算術シフトって意味分かってる?
470デフォルトの名無しさん:2012/07/07(土) 15:26:30.08
>>469
結果的に正しい解になるから問題無いんじゃない?
471デフォルトの名無しさん:2012/07/07(土) 15:28:42.70
しかし、確かに手元のK&Rに>>441のコードが乗っているが、このPってのは
取り出すビットのMSBの位置を指定するんだな。

意味が分からないわけだ。普通はLSBだよな。
前からK&Rなんて過剰評価以外の何でもないと思ってるけどこの仕様は非常識過ぎる。
472デフォルトの名無しさん:2012/07/07(土) 15:29:28.87
>>470
MSBが1だと正しい答えになりませんよ。
473デフォルトの名無しさん:2012/07/07(土) 15:29:51.53
position の p じゃないの?
474デフォルトの名無しさん:2012/07/07(土) 15:30:10.06
>>470
いや、今の小学校の算数の授業では

【問】
太郎くんが1本20円の鉛筆を8本買いました。お店にいくら払えば良いですか?

【答】
20円 × 8本 = 160円

この時、答えが160円でも式が8 × 20だと不正解になる。
475デフォルトの名無しさん:2012/07/07(土) 15:30:41.62
>>472
なるよ。読みが浅いなぁ。
476デフォルトの名無しさん:2012/07/07(土) 15:32:11.97
C言語で同じことをやったら問題になるな。VB6はある意味アホだからなw
477デフォルトの名無しさん:2012/07/07(土) 15:33:18.35
ならへんて。だから算術シフトと論理シフトの違い分かってます?
478デフォルトの名無しさん:2012/07/07(土) 15:33:36.82
符号ビットの処理が
479デフォルトの名無しさん:2012/07/07(土) 15:34:10.36
480デフォルトの名無しさん:2012/07/07(土) 15:34:30.96
この場合、VB6でサインビットがどうなるか、実際にウォッチして見てみれば問題無い事がわかるよ。
481デフォルトの名無しさん:2012/07/07(土) 15:35:18.40
>>479
それでずっとつかかってたのかw
482デフォルトの名無しさん:2012/07/07(土) 15:35:59.88
getbits(-12345, 2,5)
483デフォルトの名無しさん:2012/07/07(土) 15:38:53.19
xにLongの範囲内で与えられる最大の正数を指定する限り算術シフトでも問題ない
元の>>441の関数がxに負数を受け取らないわけだから、>>442に負数を与えることもないから符号ビットの問題は無い
ただ扱える正数の範囲が狭まるがな
484デフォルトの名無しさん:2012/07/07(土) 15:39:22.47
>>443>>443でずれてるけどね。
VBには符号なしの組み込み型がないのだからsignedな型で代用するのは仕方がない。

問題はsignedな型のMSBの挙動を意識したコーディングをしてないこと。
485デフォルトの名無しさん:2012/07/07(土) 15:39:46.71
>>482
負にはならないよ。VB6を知らないねあなた?w
486デフォルトの名無しさん:2012/07/07(土) 15:40:27.12
>>484
MSBの挙動を意識しなくても結果的にunsignedと同じ解になるだろって言ってんだが?
487デフォルトの名無しさん:2012/07/07(土) 15:42:46.43
xに 1101 1011 1100 1111 1000 0110 0000 1111 (2) を与える場合
unsigned int と Long では
488デフォルトの名無しさん:2012/07/07(土) 15:42:59.17
>>483
アホだねえ。
>>441のようなコードを移植する場合、VBではLongをビットイメージとして使うのであって
LongをLongとして使うのではない。

>>483の書くコードって、例えばWin32な関数からもらったハンドがル0x800000
より大きかったら受け取りを拒否するのかねw
489デフォルトの名無しさん:2012/07/07(土) 15:44:26.13
>>486
だからならないってのアホか
490デフォルトの名無しさん:2012/07/07(土) 15:51:38.08
>>441>>442で結果が異なる
具体例を一つ挙げれば済む話やろ
x,p,nを言えよ
491デフォルトの名無しさん:2012/07/07(土) 15:53:58.63
>>489
いい加減諦めろよw
492デフォルトの名無しさん:2012/07/07(土) 15:55:12.15
>>490
それもいいが、が逆にどう書けば正常に動くか聞いてみたいと思わん?

たぶん爆笑してしまいそうな予感wwww
493デフォルトの名無しさん:2012/07/07(土) 15:56:53.65
VB6は使う演算子によって変数の型が変わるからね。
494デフォルトの名無しさん:2012/07/07(土) 16:06:40.92
x = 0x91817161;
p = 31;
n = 8;
495デフォルトの名無しさん:2012/07/07(土) 16:09:28.12
VB6で同じ結果になることを確認。
496デフォルトの名無しさん:2012/07/07(土) 16:10:30.30
Public Function getbits(x As Long, p As Integer, n As Integer) As Long
getbits = (x \ (2 ^ (p - n + 1))) And (2 ^ n - 1)
End Function
だと>>494の結果が&H92になる
497デフォルトの名無しさん:2012/07/07(土) 16:11:41.74
左シフトに<<と<<<の論理と算術の区別はあるが
右シフトには>>しか存在しない、つまりこういうことだ
498デフォルトの名無しさん:2012/07/07(土) 16:11:53.78
つまり問題無し
499デフォルトの名無しさん:2012/07/07(土) 16:17:49.69
printf("%H\n", getbits(0x91817161, 31, 8));

Debug.Print Hex$(getbits(&H91817161&, 31, 8))
500デフォルトの名無しさん:2012/07/07(土) 16:29:26.06
Debug.Printだと負値で表示されるよ?もっと工夫しないと。
501デフォルトの名無しさん:2012/07/07(土) 16:38:29.65
printf("%H\n", getbits(0x91817161, 31, 8));
     ~~
なにこれ
502デフォルトの名無しさん:2012/07/07(土) 16:42:16.88
>>501
%xのつもりだろ?VB6ユーザーなんてその程度の代物ですwww
503デフォルトの名無しさん:2012/07/07(土) 17:25:29.32
>>500
それはDebug.Printの仕様であって演算結果の問題ではない
504デフォルトの名無しさん:2012/07/07(土) 17:32:49.70
x as Long だから問題無いでしょ?
C言語の方はunsigned intであることから最大値は65535なのだから。
マジで頭悪いのかこいつら?
505デフォルトの名無しさん:2012/07/07(土) 17:33:23.23
>>500
>>499をコピペしてやってみたけど負数にならなかったよ?
506デフォルトの名無しさん:2012/07/07(土) 17:34:26.64
xが負値になり得ないという理屈がわからないのでは?
507デフォルトの名無しさん:2012/07/07(土) 17:34:58.57
>>505
ならねーよ。釣られんなバーカwww
508デフォルトの名無しさん:2012/07/07(土) 17:35:17.97
>>504

C言語    VB6
char      Byte
short     Integer
int       Long
long      ?
509デフォルトの名無しさん:2012/07/07(土) 17:38:51.10
C言語のint型が4バイトだと決まっているわけではない>>441のケースではunsigned int型は2バイト整数だからVBのLog型で十分対応可能だ
510デフォルトの名無しさん:2012/07/07(土) 17:39:02.85
>>504
int方が16ビットという決め打ちは危険。
32ビット環境ではint型は32ビットだから問題アリということになるだろ?
まあ、題材がK&Rのgetbitsだって前提を理解してる人としていない人との
見解の相違ってとこじゃないだろうか。K&Rの時代は32ビットCPUは存在しなかったし。
511デフォルトの名無しさん:2012/07/07(土) 17:41:20.17
結局どちらの言い分も正しかったわけだな。この辺んで仲直りしろよ。

みんな仲良く三流プログラマー同志wwww
512デフォルトの名無しさん:2012/07/07(土) 17:41:40.86
64bitマシンだとint型も64bitか
513デフォルトの名無しさん:2012/07/07(土) 17:43:21.90
>>512
いや、64bitの場合は明示的に区別するから問題ない。
int = 64bit はあまりに危険すぎるのでw
514デフォルトの名無しさん:2012/07/07(土) 17:53:15.20
出かけて帰ってきたらこのスレすごい伸びてるなぁ
完全移植なんて無理だからビットシフトの方法だけ書けばよかったと後悔
515デフォルトの名無しさん:2012/07/07(土) 17:59:58.37
最近このスレよく伸びるネ
516デフォルトの名無しさん:2012/07/07(土) 18:02:32.98
なんだかんだ言ってVB6ぷろぐらまーが
こんなに居て安心した休日の夕刻
517デフォルトの名無しさん:2012/07/07(土) 18:20:14.82
>>514
ちょっと問題がありましたけど、見事に動きました。
スキルの高い人がいて助かりましたm(_ _)m
518デフォルトの名無しさん:2012/07/07(土) 23:54:52.22
礼など要らん
519デフォルトの名無しさん:2012/07/07(土) 23:55:41.87
>>518
お前が言うなw
520253:2012/07/08(日) 05:28:24.63
さっき、軽はずみで最新のDirectX SDKをインストールしたらVB6 & DX8で作ったアプリ他、古いDX使ってるフリーソフトとかも正常に動くようになった
何でだろ、まぁ結果オーライでハッピーだ
521デフォルトの名無しさん:2012/07/08(日) 07:00:20.34
世間には俺より詳しい奴なんていくらでも居るのに、
何故かこのスレには俺より詳しい奴が一人も居ない不思議
522デフォルトの名無しさん:2012/07/08(日) 07:08:24.14
本当に詳しい奴は
このスレで得られる情報は何もないってわかっているんだろう
523デフォルトの名無しさん:2012/07/08(日) 14:16:13.32
>>522
ハゲドウ

でも教えたがり屋の人が舞い降りてくれると思うんだけどね。
知恵袋先生みたいに。
524デフォルトの名無しさん:2012/07/08(日) 15:48:44.55
それなら
もっとまともなフォーラムのほうへ行ってるだろ
525デフォルトの名無しさん:2012/07/08(日) 15:51:47.27
MSDN フォーラム
http://social.msdn.microsoft.com/forums/ja-jp/categories/

Microsoft TechNet フォーラム
http://social.technet.microsoft.com/Forums/ja-jp/categories

Microsoft Forums: Get live and on-demand access to a wide range of technical and business guidance from industry experts.
http://www.microsoft.com/communities/forums/default.mspx

日本語などの文字コードに関わる話とか日本にしか流通してない技術使うとかでもないかぎり
日本語のフォーラムに参加する意味はない
526デフォルトの名無しさん:2012/07/08(日) 17:50:44.24
(キリッ
を付けるの忘れてますよw

しかし、本人たぶんドヤ顔で張ってるんだろうけど、こういう虎の威を借りて
何かの集団を見下すって日本の左巻きの伝統芸能だな。

頭悪いネトウヨも鬱陶しいがこういう卑しい奴もいやだね
527デフォルトの名無しさん:2012/07/08(日) 22:30:02.54
> (キリッ
> を付けるの忘れてますよw
それ、自嘲ですか?w
528デフォルトの名無しさん:2012/07/09(月) 20:11:23.12
>世間には俺より詳しい奴なんていくらでも居るのに、
>何故かこのスレには俺より詳しい奴が一人も居ない不思議

この人何に詳しい人なんだろ?おまんこかな?w
529デフォルトの名無しさん:2012/07/09(月) 20:13:29.36
>>525
今どきどこのフォーラムもVB6の質問なんてまともに取り上げてくれないよ。
頼りになるのはこのスレと魔界の仮面弁士さんくらいのもの。
530デフォルトの名無しさん:2012/07/09(月) 20:56:23.25
今も活発に活動しているんだね。道理でVB6が根強い訳だな。
http://hpcgi1.nifty.com/MADIA/VBBBS/wwwlng.cgi
531デフォルトの名無しさん:2012/07/09(月) 21:03:36.95
>>530
「GOTOの代わりになる命令」
この明らかにバカにした質問に対する親切杉る回答を見て
まさに目から鱗が落ちる思いだった。

それに比べるとこのスレはホント糞だわ。
何もできないアホが「俺こそが一番詳しい」と言い放つ。
あー、見てらんないw
532デフォルトの名無しさん:2012/07/09(月) 21:07:21.20
自傷行為はやめなさい
533デフォルトの名無しさん:2012/07/09(月) 21:11:04.88
自傷行為(じしょうこうい)とは自らの身体を意識的・無意識的に拘らず傷つける事を言う。
日本ではリストカットが有名である。虐待のトラウマや心理的虐待及び摂食障害、
低い自尊心や完璧主義と正の相関関係があると考えられている。自傷行為は多くの場合文化的タブーとされる。

534デフォルトの名無しさん:2012/07/11(水) 01:07:52.48
環境はWindows7 Excel2007のVBAですが、直接Excelとは関係無い質問はこちらに、
との事ですので質問させて頂きます。

連想配列の値を配列にした場合、
その配列の要素を簡単には変更できずに困っています。

'======================================================
Dim hashObj(10) As Object
Dim tmpArray() As Double

ReDim tmpArray(100,100)

For i = 0 To 10
  Set hashObj(i) = CreateObject("Scripting.Dictionary")
   hashObj(i).Add "hogehoge", tmpArray  '連想配列の値に配列をセット
Next i

'連想配列の値の配列の1要素を直接編集することは出来ない。
hashObj(0)("hogehoge")(0, 0) = 100
MsgBox hashObj(0)("hogehoge")(0, 0) '0が表示

'配列毎更新すれば変更可
Dim varTmp As Variant
varTmp = hashObj(0)("hogehoge")
varTmp(0, 0) = 100
hashObj(0)("hogehoge") = varTmp
MsgBox hashObj(0)("hogehoge")(0, 0) '100が表示
'======================================================

配列ごと置き換えれば一応編集は可能なのですが、1要素書き換えるだけなのに、
配列全体を更新するのは、処理速度上でかなりのボトルネックになってしまっています。
簡単に1要素だけ編集することはできないでしょうか?
535デフォルトの名無しさん:2012/07/11(水) 01:10:36.43
見たことない構文だと思ったら
俺はVBAは使ったことないせいか
536デフォルトの名無しさん:2012/07/11(水) 01:14:47.31
>>535
キミはこのスレの住民失格だよ
537デフォルトの名無しさん:2012/07/11(水) 03:48:22.29
>>534
こんなクラス(Class1)を用意して

Private tmpArray() As Double
Private Sub Class_Initialize()
    ReDim tmpArray(100, 100)
End Sub
Public Property Get Item(x As Long, y As Long) As Double
    Item = tmpArray(x, y)
End Property
Public Property Let Item(x As Long, y As Long, New_Value As Double)
    tmpArray(x, y) = New_Value
End Property

こうするとか
Dim hashObj(10) As Variant
Dim i As Long
For i = 0 To 10
    Set hashObj(i) = CreateObject("Scripting.Dictionary")
    hashObj(i).Add "hogehoge", New Class1
Next i
hashObj(0)("hogehoge").Item(0, 0) = 100
MsgBox hashObj(0)("hogehoge").Item(0, 0)
538デフォルトの名無しさん:2012/07/11(水) 09:56:37.98
連想配列って何?
VB6しか知らないおいらに優しく説明してくんろ。
539デフォルトの名無しさん:2012/07/11(水) 12:52:34.51
他の言語からすれば、配列の参照やポインタを格納してるつもりなんだろうけど
Dictionary.Addは配列の参照ではなく、コピーを格納するし、
Dictionary,Itemは格納された配列の参照ではなく、コピーを返すんじゃないかね。

tmpArrayも2次元Dictionaryにしちゃえば?

あと、速度を気にするなら、Microsoft Scripting Runtimeを参照設定して
hashObj(10) As Dictionaryしたほうがいい。
540デフォルトの名無しさん:2012/07/11(水) 13:17:24.21
環境はWindowsXP Excel2003です。私も直接Excelとは関係無い質問はこちらに、
との事ですので質問させて頂きます。

ieの画面操作で困っています。

操作したいie画面は左右にフレームが分割されているもので、左側に
メニューが並んでおり、そのメニューをクリックすると、右フレームに
そのメニューに応じた画面が表示されるというものです。

ie画面操作を自動化したいのですが、このメニュー選択の部分が突破
できずにいます。左フレームのソースのリンク先を使って、以下の
マクロを書いたのですが

Dim objShell As Object
Dim IEurl As String
Set objShell = CreateObject("WScript.Shell")
IEurl = "http://********************"
objShell.Run IEurl

このマクロでは、右フレーム上に画面を開くことができずに
「不正な画面遷移が検出されました」と分割フレームが消えて
全面に表示されてしまいます。

尚、クッキーを引継ぐ必要があるので、WScript.Shellを使っています。

objShell.Run IEurl の部分でカレントフレームを指定するなどが
できないでしょうか?Runの前(又は後)に「.〜」と何か挿入するとか・・。
frame(0)などを入れてもうまく行きません。

どなたかie画面操作に詳しい方、レスお願い致します。

541デフォルトの名無しさん:2012/07/11(水) 13:38:48.99
まずそのURL直接IEで開いてちゃんと表示されるんだろうな?
542デフォルトの名無しさん:2012/07/11(水) 14:22:46.62
残念ながらそのURLは直接開くことはできない様になっています。
このメニュー画面からでないと開けません。
543デフォルトの名無しさん:2012/07/11(水) 14:29:00.97
直接開けないURLは手でやろうがプログラムからやろうが開けません
544デフォルトの名無しさん:2012/07/11(水) 14:34:33.83
http://makoto-watanabe.main.jp/htmlDOM.html#link

このやり方でメニュー画面からいけばいいのでは?
545デフォルトの名無しさん:2012/07/11(水) 14:34:58.19
ダイレクトに開けないページってrefererとかcookieとか使ってるんじゃねの
546デフォルトの名無しさん:2012/07/11(水) 15:09:17.30
皆さんありがとうございます。
http://makoto-watanabe.main.jp/htmlDOM.html#link
このやり方も試してみましたが、フレームの名前で指定しても
エラーになります。
また、ダイレクトに開けないのは、cookie認証だと思います。
それと画面遷移もチェックされているようです。

navigate2 で開くというのもトライしていますが、cookieを
引継ぐコーディング方法が分からないので、暗礁に乗り上げています。
547デフォルトの名無しさん:2012/07/11(水) 15:17:11.27
こんなの俺ならちょちょいのちょいでできるのにな

掲示板でのやりとりじゃ面倒だから何もしないけど。
548デフォルトの名無しさん:2012/07/11(水) 15:24:09.86
できないとすなおにいえばかわいいものを
549デフォルトの名無しさん:2012/07/11(水) 15:25:18.76
いやできるよ
550デフォルトの名無しさん:2012/07/11(水) 15:26:49.29
そうですよね。分かれば簡単なはずですよね。
私ははじめてあまり時間が経っていないのもあって
苦戦しています。(涙)
551デフォルトの名無しさん:2012/07/11(水) 15:29:14.29
そうですよね。分かれば簡単なはずですよね。
私ははじめてあまり時間が経っていないのもあって
苦戦しています。(涙)
552デフォルトの名無しさん:2012/07/11(水) 15:44:32.98
なぜれんとうするのかいみふめい
553デフォルトの名無しさん:2012/07/11(水) 15:49:55.25
つーかさ、まずその対象URLを書こうよ

相手から無償で情報を提供して貰おうとするものが
自分の情報を隠すなんて失礼極まりないだろ

直接開けないところをどうにかしようとしているなら
それが可能であってもソースが分からないことには何も出来ないし
554デフォルトの名無しさん:2012/07/11(水) 15:52:58.36
みもとがばれてしまうからふつうかけないでしょう 
555デフォルトの名無しさん:2012/07/11(水) 16:02:19.17
すみません。連投は操作ミスです。
URLはイントラの仕組みなので・・・。
ソースの公開もさすがにまずいのでご理解下さい
しかし、言われることは良く理解できます。


556デフォルトの名無しさん:2012/07/11(水) 16:05:30.72
りかいできるだけではさきにすすまんのだが
557デフォルトの名無しさん:2012/07/11(水) 16:10:02.91
まずはそのイントラシステムの模倣システムを
インターネット上に公開しないと話にならないな
558デフォルトの名無しさん:2012/07/11(水) 17:04:31.82
対象のURLがわかれば出来ると思う。

てかメックでも使ったほうがはるかにラクな気がするのはきのせいか
559デフォルトの名無しさん:2012/07/11(水) 17:22:16.74
サーバ側の仕様がわからんのに、出来るか出来ないかは判断できない
まずサーバ側の管理者に、アクセスするための手順を教えてもらえ

あとはそれをその通りプログラムするだけだから、その手順をここで公開しろ
560デフォルトの名無しさん:2012/07/11(水) 22:38:47.50
こういうときこそWinHTTPを使うんだお!
561デフォルトの名無しさん:2012/07/12(木) 14:06:13.37
なんだそれは
562デフォルトの名無しさん:2012/07/12(木) 22:37:40.98
そーです。わたしが
563デフォルトの名無しさん:2012/07/13(金) 00:47:54.27
>>537
なるほど、クラスを値にすれば良かったのですね。
計算コストが1/4程になりました。有り難う御座いました。

>>539
2次元Dictionaryだと、今度はメモリ消費の観点から厳しそうです。
現状のDouble型でも300MBほど使ってしまっていますので・・・
参照設定の方は、是非試させて頂きます。
564デフォルトの名無しさん:2012/07/13(金) 15:57:35.64
物言わぬ多数派: Visual Basic 6 が今でも成功している理由
http://msdn.microsoft.com/ja-jp/magazine/jj133828.aspx
565デフォルトの名無しさん:2012/07/13(金) 20:17:27.70
コピペマン参上!まで読んだ。
566デフォルトの名無しさん:2012/07/13(金) 21:47:26.71
>>564
なんかVB6ユーザ−の目をLightSwitchに向けさせたいだけみたいだけど
俺らがVB6を使ってるのはそんな理由じゃないんだが?
単に他の言語を習得する余裕がないだけの話www
567デフォルトの名無しさん:2012/07/13(金) 22:05:30.95
それでメシ食っていけるなんて、心底うらやましい
568デフォルトの名無しさん:2012/07/13(金) 22:26:34.23
>>567
医療系なんだけど、8年前にVB6でサーバーサイドActiveXとSQL Serverを使ってDICOMサーバーを作りましてね、、
I社とかT社とかP社とかH社とかとのシステムと相互接続して互換性を高めるためにサブシステムを色々作っていくうちに、
なんと今ではほぼ日本にあるすべての医療メーカーの医療機器(モダリティ)やDICOMサーバーと卒なく通信できる
とんでもない代物になってしまった。

DICOMって互換性があるように言われてるけど実際は嘘八百で何もせずにそのままデータが受け渡しできることなんて
ほとんどないのです。通常は数百万円もするゲートウェイを使ってDICOMを書き換えて通信できるように調整したり
めちゃめちゃ高い料金取るメーカーのサポートにお願いすれば大抵は調整してもらえるようなかんじ。

それがそのVB6で作ったDICOMサーバーとサブシステム、いわゆるPACSは、高価なDICOMゲートウェイやDICOMルーター
を必要とせず、そのソフト一本でどのメーカーとも接続できてしまうようになってしまった。ニッチを狙ったビジネスが
今や敵対メーカーもないままこのソフト一本で年商30億を維持できるようになった。

8年間の積み重ねで作ったシステムって、そう簡単に他の言語に切り替えられるもんじゃないし、その必要もないし
殿様商売なもんで、自己啓発や向上心なんてとうの昔にどこかへ忘れて来たしで・・・今もVB6オンリーって訳です^^;
569デフォルトの名無しさん:2012/07/13(金) 22:41:09.67
スッゲー
570デフォルトの名無しさん:2012/07/13(金) 22:54:28.70
>>568
テリオスか。。。
医療界では伝説だよね。
571デフォルトの名無しさん:2012/07/14(土) 02:08:48.31
>>568
いずれサーバーのリプレースでOSとか
入れ替えざるを得ない時どうなるのかね

技術者が日本よりレベル高そうな
海外でもそうなんだなー。

日本では技術的な問題より規模的な問題で
VB6のポトペタ+コピペーコードで十分だよ、って状況が多いような気がする。
画面にボタンと入力欄を用意して6機能ぐらい動く、みたいな
572デフォルトの名無しさん:2012/07/14(土) 04:03:43.71
言語ってそういうものかもしれないな。

極めるくらいまで突き詰めればどの言語も大差ないのかもしれない。



ちゃんとそういう人々をサポートしてほしいよね。もったいない。
573デフォルトの名無しさん:2012/07/14(土) 09:34:26.25
VB6は守備範囲が広いからね。
視点がどうしてもデスクトップに行ってしまいがちだが
VB6で作られたサーバーアプリって実は企業にはたくさんある。
VB6を見ているとJAVAが不滅なのと似ている気がする。
JAVAはデスクトップでのシェアは全然獲得できなかったけど
サーバーサイドではスケーラビリティの点で評価され一定のシェアを築いた。
VB6ってIntel PCプラットフォームだけでしか使えないのに
これだけのシェアを確保したって事はある意味すごいような気がする。
60歳超えたおっさんが保守できる言語ってそうあまりないだろうし。
574デフォルトの名無しさん:2012/07/14(土) 09:39:58.66
Windows 8ではランタイムがサポートされたけど
サーバーはどうなんだろうね。
Windows 2008 Server R2まではどうにかこぎつけたけど・・。
575デフォルトの名無しさん:2012/07/15(日) 04:50:01.94
与えられたシステムを組むだけのIT土方はどんどん新しい言語を習得すればいいけど
本業がプログラマじゃない人は本業の方で手一杯だよね
苦労して新しい言語を習得してもそれが数年後には消滅してる可能性もあるし
576デフォルトの名無しさん:2012/07/15(日) 05:03:48.03
だからJava使っておけばいい。
これからも安泰な
一番使われてる言語
577デフォルトの名無しさん:2012/07/15(日) 21:20:10.45
>>572
さんざん使い倒した人が、どの言語も大差ないって言うのはわかるが…

前スレだったかな。

IfとかForの制御文のみをもってして、どの言語も大差ない的な書き込みが
あってさ。いや、制御文レベルじゃ大差ないだろうけど。

578デフォルトの名無しさん:2012/07/15(日) 21:27:06.04
さんざん使い倒した人はそんなこと絶対に言いませんw
579デフォルトの名無しさん:2012/07/16(月) 03:52:52.64
Windows環境においてはVBが普及したため
JavaでGUIを作ると変な顔されることに。

COMコンポーネントのコントローラとしてちょうどいいんだなあ
VBScriptとVBAがある限り当分なくならないな
580デフォルトの名無しさん:2012/07/16(月) 07:24:49.67
まあ、クライアントもサーバーもWindowsだと
Javaじゃなけりゃいけない理由てのが無いしな
581デフォルトの名無しさん:2012/07/17(火) 09:18:33.10
>>580
理由がないなんて生ぬるいよ。
Windowsが急に重くなってマウスも反応しなくなるっつーから
まーたUSB系のトロイにでも感染したかと思ってい行ったら
JAVAランタイムがCPU負荷100%だったなんてことがよくある。
どうしてもJAVAプラットフォームが必要な業務ソフトでもあるのなら仕方ないが
DNSサーバーのためにJAVA入れてる人とか見ると
なんて非効率な事やってるのかと笑えてくる。まさに糞JAVAwww

最近深刻なのが.netの脆弱性を突くワームだよ。
ブラウザ開くだけで感染し、ファイアーウォールを設定していても感染する。
そして駆除がまた難しい。定石のレジストリのRUN起動ではなく
アセンブリのDesktop.iniを書き換えて発動するから、パニックになる人が多い。

JAVAも.netもシステムを管理する側からすると糞みたいなそんざい。
フレームワークなど一切使用せずに動くプログラムだけにしてほしいよ。
おれが組むわけじゃないからwww




582デフォルトの名無しさん:2012/07/17(火) 12:57:31.33
Frameworkなしでプログラミングできる人なんて
今の時代は組み込み屋くらいしかいないだろう?
583デフォルトの名無しさん:2012/07/17(火) 13:00:21.47
どいつもこいつもコード書かせるとブロック内に必ず try, catch, finally が存在していてきもちわるい。
584デフォルトの名無しさん:2012/07/17(火) 13:02:25.17
Javaで書くとWindowsで開発しても、完成と同時に自動的にMac、Linux対応になるから嬉しい。
なんか自分で対応させたかのように見えるのが気持ちいいのさ。
585デフォルトの名無しさん:2012/07/17(火) 14:04:32.04
.NET FrameworkとJavaは似てるよね
VB6が好きな趣味グラマより
586デフォルトの名無しさん:2012/07/17(火) 15:01:50.77
>>585
.NET Frameworkが必要ないVB6は配布時に楽でいい。
XP以降が前提なら標準的なランタイムは最初から入っているしね。
単純なプログラムならEXEだけの配布でも動く。

それに引き替え.NETはたとえHello, World!!のプログラムだけでも
ビルドに合致した.NET Frameworkの配布が必要となる。
Win 7専用とすれば3.5は入っていることが約束されると思ってるだろうが
2.0の再構築時にウザイから削除してるケースが多いんだよね。
587デフォルトの名無しさん:2012/07/17(火) 17:43:21.62
Javaにしたって最初からJavaVMがインストールされてるとは限らないわけだし
588デフォルトの名無しさん:2012/07/17(火) 19:57:53.25
俺はJava便利だと思うが。
というより、Eclipseが便利と言った方が適切か。
Javaの構成とかがガッチリしてるから
Eclipseでの扱いが楽なんだろうけど。

コードアシストは当然として、
try catchとか調べなくても囲んでくれるし。
アクセッサも自動生成してくれるし。
依存関係調べるツールも便利だし。
なんか欲しいプラグインってたいていあるし。
589デフォルトの名無しさん:2012/07/17(火) 20:13:16.42
VB系はIDEが選べないってのが問題ってとこなの?
590デフォルトの名無しさん:2012/07/17(火) 21:11:37.40
>>588
VSのコードスニペットを知ったらそんなのゴミと化すよw
591デフォルトの名無しさん:2012/07/17(火) 21:39:34.83
Javaも.NETFrameworkも中間言語コード生成で動かす
んでJavaはJava言語から中間言語コード生成して
.NETFrameworkはVB、VC++、VC#から中間言語コード生成するわけだ

おまえらが頑張ってVB6のソースコードからそれらの中間言語コードを吐くプログラムを作ればいいんだよ
592デフォルトの名無しさん:2012/07/17(火) 22:51:24.87
VB6からVB.NETへのソース変換のほうがまだ現実味があるな
593デフォルトの名無しさん:2012/07/17(火) 23:52:46.76
>>591
同列に扱うなよ。効率が全然違う。JAVAはスケーラビリティに優るが
実効効率では.netの足元にも及ばん。ハードの性能で百何隠すのが吉。
携帯とかタブレットでは開発環境的にもJAVAが良い。
594デフォルトの名無しさん:2012/07/18(水) 00:05:33.64
中間コードの性質が違うからな
.NETはWindows上であることが前提のだし
595デフォルトの名無しさん:2012/07/18(水) 00:11:30.44
EcmaだのECMAだのmonoだのは死ねってか
596デフォルトの名無しさん:2012/07/18(水) 00:26:12.85
VB6を使うのは

・アプリとしての使用感や実行性能

・慣れた言語であるなど開発のしやすさ

後者の場合のみで前者としての価値がないのなら
VB6のコードから.NETの中間バイナリでも生成するコンパイラでも作るべき
597デフォルトの名無しさん:2012/07/18(水) 00:31:43.98
>>594
そういう話じゃない。
そもそも中間コードって表現もどうかと思うが...

.NETとJAVAを両方やって気づくJAVAの問題はいろいろあるけど、
パフォーマンスの観点から言えば

(1) 値型がない
(2) ジェネリックの仕様

この2点が大きいと思う。
598デフォルトの名無しさん:2012/07/18(水) 00:36:10.99
>>596
後者のみならVB10を使えば済む。
さんざん既出だと思うけど、相違点なんて実はたいしたことない。
そういうこと書いてるとまたわんくまの例の記事のリンクをコピペしちゃうよw
599デフォルトの名無しさん:2012/07/18(水) 00:43:14.52
最近VB2010Express使ってみたけど
.NETとVB6以前ではかなり違いがあるように感じたけど
BasicってよりJavaっぽいコーディングだし
600デフォルトの名無しさん:2012/07/18(水) 07:16:17.90
>>596
VB6はガベコレでメモリの解放は行うが
再配置をしないのでサクサク動作するっていう
特長を捨てるのもどうかと思うが。

JVMも.NETもこの点では再配置時の停止時間は
避けきれてない。
601デフォルトの名無しさん:2012/07/18(水) 09:09:57.69
>>600
VB6にガベコレあったっけ?
明示的にnothingを代入して解放せにゃならんかったと思ったが?
プロセスのメモリの事ならVB6に限らずEXEなら終了時にWindowsが勝手に開放するが。
602デフォルトの名無しさん:2012/07/18(水) 11:11:53.52
>>601
ランタイム内部で何かやってそうな感じではあるけどな。
INSIDE VB6とか読んでる人じゃないとこの辺はちょっちねーーーw
603デフォルトの名無しさん:2012/07/18(水) 12:10:25.69
知らないなら黙っててください
604デフォルトの名無しさん:2012/07/18(水) 12:21:51.89
知らぬが仏って事もあるしなー
605デフォルトの名無しさん:2012/07/18(水) 14:08:11.51
それは知ってる奴が言うセリフだろ。
606デフォルトの名無しさん:2012/07/18(水) 14:16:19.29
知ってるさ。少なくとも君よりはね。日本語版にローカライズした一人だし。
607デフォルトの名無しさん:2012/07/18(水) 14:29:42.98
明示的nothing代入しなくてもプロシージャから抜ければ勝手にメモリから解放されるんじゃないの?
608デフォルトの名無しさん:2012/07/18(水) 14:55:54.52
ガベージコレクションと、スコープを外れたときに変数領域が使用中から未使用になるというのは、
別の問題じゃないかな。
VB6は、スコープを外れれば使用中の変数領域は未使用状態になるので、関数の終わりでnothingを
代入する必要は全くない。
が、その未使用状態になった領域がGCされるかどうかは知らない。
609デフォルトの名無しさん:2012/07/18(水) 16:03:11.24
>>606
結局しらないんだろ?
610デフォルトの名無しさん:2012/07/18(水) 16:07:39.66
>>607
それがガベージコレクションなら、標準C言語もガベージコレクションを搭載していることになるぜ?
冗談で言ってるのだと思うが、時々マジで変な事を自信満々に言う子がいるのでびっくりする。
611デフォルトの名無しさん:2012/07/18(水) 16:09:45.39
>>607
プロシージャ―内でNewしたクラスをそのまま解放せずプロシージャ―を抜ければ
そのクラスもメモリーから解放されるとか思っているなら終わっているよキミは。
612デフォルトの名無しさん:2012/07/18(水) 16:12:25.88
.netでは明示的に開放しなければならないところとガベージコレクションに任せて開放してはならないところがあるのが難しい。
未だによくわからなくてエラーになる。その点VB6は分かり安くていい。解放忘れてもそれなりに動くしねwww
613デフォルトの名無しさん:2012/07/18(水) 16:28:12.55
>>611
マジで言ってるのかどうか、判断に苦しむが…。
Newされたインスタンスは、それを保存する変数のスコープがプロシージャレベルなら、
プロシージャを抜けると解放されるよ。
614デフォルトの名無しさん:2012/07/18(水) 16:46:50.29
>>613
BoundsCheckerで確認した限りでは解放されませんが何か?
あとFormも問題があるね。モーダルフォームは明示的にNothingを代入しても
メモリから消えない事がある。理由はわかっているが。
615 忍法帖【Lv=40,xxxPT】 :2012/07/18(水) 16:50:53.02
MSDNがアナウンスしている公式情報は嘘ばっかりだす。時々誤訳で意味が正反対なんてこともあるだす。
「こうなります」と書いてあって信じてやってみたら実は全然違ってたなんて事があるのがデフォだす。
実際に自分の目で確かめてはじめて真実を得ることができるのはVB6に限らずMS製品全般に言えることだす。
616デフォルトの名無しさん:2012/07/18(水) 17:02:09.08
>>614
何を持って「解放された」と定義するのかってことだと思う。

Nothingを代入すべきかどうかという文脈で言うと、プロシージャレベルのスコープの変数に保存された
インスタンスは、Nothingを代入せずともスコープを抜ければデストラクタ(Class_Terminate)が走る。
これを「解放された」と表現するなら、解放されたということになる。

VB6用のBoundsCheckerは使ったことないけど、ひょっとしたら暗黙の解放(プロシージャを抜けると
行われる処理)と、明示的な解放(Nothingを代入)に違いがあったりするの?
617デフォルトの名無しさん:2012/07/18(水) 17:05:41.09
>>613-614

Dim c As New Class1



Dim c As Class1
Set c = New Class1

の違いに関係なく解放されないの?
618デフォルトの名無しさん:2012/07/18(水) 17:08:36.27
>>616
VB6のメモリー解放は実は単純じゃない。
明示的だろうが暗黙だろうが意図した通りに開放していないことが多い。
ただそれはコーディング上の工夫である程度緩和できる。
そういった問題を意識してコーディングする人とそうでない人のものでは
コード品質が大きく変わる。でもリスト上でそれを発見することは知ってないと無理。
エラーが出ずに動けば無問題と思うVB6プログラマーほど怖いものはないとおもいますよ。
その意味では.netの方が遥かに安全。あくまでメモリーリークの観点からだけだけれど。
619デフォルトの名無しさん:2012/07/18(水) 17:10:58.66
>>617
関係ありません。迷わずNothingを代入して終わってください。
呼び出し側の状態によってはメモリが解放されない事があります。
そのまま何度もそのプロシージャを呼び出すと、終いに面白い事が起こります。
620デフォルトの名無しさん:2012/07/18(水) 17:12:50.92
こうやって、実は全然必要無い「とりあえずNothing代入しとけ」というバッドノウハウは引き継がれていくのであった
621デフォルトの名無しさん:2012/07/18(水) 17:14:25.07
>>618
> 明示的だろうが暗黙だろうが意図した通りに開放していないことが多い。
そうなの?

> ただそれはコーディング上の工夫である程度緩和できる。
どうやって?

> その意味では.netの方が遥かに安全。あくまでメモリーリークの観点からだけだけれど。
Newしたクラスもリークするの?
622デフォルトの名無しさん:2012/07/18(水) 17:15:36.22
>>620
そう思ってろってば。確かに表面化するとは限らないから
今回大丈夫だったから次回も大丈夫理論でやってればいい。
疑心暗鬼になって色々調べている人は少なくないし
そういう人たちのいう事を信頼したところで痛い目には合わんだろうしね。
ご自由にどうぞw
623デフォルトの名無しさん:2012/07/18(水) 17:18:33.43
>>621
どうやって?
そんな一言で言えるくらいならとっくに言ってるよ。
自分で色々調べてみなよ。
最終的にはランタイム以外はCで作ったライブラリなんだから。
VB6でデバッガというとウォッチが頭に浮かぶようではちょっと無理かも。
624デフォルトの名無しさん:2012/07/18(水) 17:19:42.89
つまり、具体的には何も言えませんってってことだな
黙っとけ
625デフォルトの名無しさん:2012/07/18(水) 17:20:28.11
Nothingを明示的に代入しても駄目なら、もう何しても駄目じゃん
VB6を使わないって選択肢か無いよね
626デフォルトの名無しさん:2012/07/18(水) 17:21:35.86
VB6がメモリーを開放しないのはある意味意図的なものがある。
恣意的に適当な事を言っているのではない事はわかるよ。
ただそこまで考えるとVB6の簡単さを失う事になる。
知らぬが仏ということもVB6にはアリではないかな?
627デフォルトの名無しさん:2012/07/18(水) 17:23:26.49
Class_Terminateが動いても駄目って事なら、もう打つ手ないね
628616:2012/07/18(水) 17:26:46.21
誰が誰やらわからないが。

> VB6用のBoundsCheckerは使ったことないけど、ひょっとしたら暗黙の解放(プロシージャを抜けると
> 行われる処理)と、明示的な解放(Nothingを代入)に違いがあったりするの?

BoundsChecker使ってる人、これわかるなら教えてください。
俺はNothing不要派なんだけど、宗旨替えするかもしれない。
629デフォルトの名無しさん:2012/07/18(水) 17:30:53.79
>>627
駄目なんじゃなくて、明示的にNothingしないとランタイムのメモリー解放タイミングに遅延がでるって事じゃないの?
コード上で今解放したと思っていても実はまだ解放されておらず、それを知らずに何度も呼び出したりすると最終的にあぼーんするとか。
どんな言語でもガベージコレクションのタイミングは不明確だから、たとえVB6であってもそれは例外でないって話でしょう?
630デフォルトの名無しさん:2012/07/18(水) 17:35:30.89
>>628
> VB6用のBoundsChecker

そんなものあるのか?
俺はVC用のBoundsCheckerを使ってCコンパイル済みのVB6コードを追いかけて言っていたのだが?
何度も言うが、分からないなら騙されたと思ってプロシージャ―内でもClassをNothingすることだよ。
意味がないと思って勝手に端折るのは自由だけど、俺は裏を知ってるんでそんなコード書く奴を信用しない。
ただそれだけの事なので、各自自分の信仰する宗教を大切にしてほしい。
631デフォルトの名無しさん:2012/07/18(水) 17:40:58.75
>>630
> そんなものあるのか?
うん、ある。

> 何度も言うが、分からないなら騙されたと思ってプロシージャ―内でもClassをNothingすることだよ。

騙されたくないので、暗黙的な解放と明示的な解放に差があるのかどうかが知りたいのだけど。

> 意味がないと思って勝手に端折るのは自由だけど

だから、明示的なNothingの代入がどういう意味を持つのかを知りたいんですが・・・。
632デフォルトの名無しさん:2012/07/18(水) 17:45:01.21
その裏が具体的には何かを言わない奴www
633デフォルトの名無しさん:2012/07/18(水) 17:47:34.51
>>630
あ、ごめん、VB6用のBoundsCheckerなんて無かった。
ググったときに見間違えた。
634デフォルトの名無しさん:2012/07/18(水) 17:47:39.16
>>631
簡単に言うとClass_TerminateがAPIのメモリ開放を行わない事態が発生する。
理由は簡単で他のメモリ開放要求がAPIに対して行われると
スケジュールされてないメモリ開放がキャンセルされてしまう。
明示的にNothingを代入すればスケジュールされるので確実に開放が行われる。
グローバルヒープを直接操作するAPIとか使うときは特に注意すべし。
635デフォルトの名無しさん:2012/07/18(水) 17:55:06.97
>>634
その主張と全く同じ内容のWebページを示すことができたら、信じてやっても良いよ
636デフォルトの名無しさん:2012/07/18(水) 18:04:51.84
>>634
ほんとかそれ。

>グローバルヒープを直接操作するAPIとか使うときは特に注意すべし。
何関係無い話持ちだしてんだよwww
637デフォルトの名無しさん:2012/07/18(水) 18:09:54.38
>>635
全ての情報がネット上にあるとか信じてるアホに用はないよ。こいつアホかよ?マジで・・・。

>>636
関係なくないよ。VB6からWin32 APIを直使うときはランタイムの処理との整合が取れずに問題になることがただでさえ多いんだけど。
サブクラス化とかいかにもヤバそうな実装が、意外に強固なほどに問題が無かったり今ひとつ不可解なVB6。
とにかく、おまじにとか言われていることを表面的な解釈で無視して良い事はない。これはVB6のすべてにおいて言える。
638デフォルトの名無しさん:2012/07/18(水) 18:12:40.81
グローバルヒープとか言っちゃってる時点で、嘘がばればれなんだけど
639デフォルトの名無しさん:2012/07/18(水) 18:15:43.33
>>637
> >>635
> 全ての情報がネット上にあるとか信じてるアホに用はないよ。こいつアホかよ?マジで・・・。

既知の事実なら、誰かがネット上に公開してたり、どこかのスレッドで話題になってたりするだろアホ
お前の作り話じゃ無いなら、見つけて見ろ
BoundsCheckerのログで具体的に証拠を示してもいいぞ

> 関係なくないよ。VB6からWin32 APIを直使うときはランタイムの処理との整合が取れずに問題になることがただでさえ多いんだけど。
> サブクラス化とかいかにもヤバそうな実装が、意外に強固なほどに問題が無かったり今ひとつ不可解なVB6。
> とにかく、おまじにとか言われていることを表面的な解釈で無視して良い事はない。これはVB6のすべてにおいて言える。

何一つ具体的な話ができないんだな
640デフォルトの名無しさん:2012/07/18(水) 18:20:00.52
>>637
スコープを外れたときにオブジェクトの参照カウンタが減らないというバグがVB5であって、
VB6ではそれがFixされたって知ってる?
Nothingを代入しとけってのは、VB5時代の話だよ。
641デフォルトの名無しさん:2012/07/18(水) 18:27:18.89
Purifyだと暗黙的な解放と明示的な解放で差が出なかったわけだが
642デフォルトの名無しさん:2012/07/18(水) 18:32:20.67
>>640
>Nothingを代入しとけってのは、VB5時代の話だよ

あらあら。何でも信じてしまう信者ばかりだとメーカーは楽でいいね。

Purifyとな?ヲワタwwww

643デフォルトの名無しさん:2012/07/18(水) 18:34:44.99
PurifyってVC6用のシンボルプロファイル持ってたっけ?まさかアセンブラレベルでブレークセット?
だったらスゲー。SoftIce級の人にはさすがに勝てん。ハッカーじゃないのでw
644デフォルトの名無しさん:2012/07/18(水) 18:36:21.94
>>640
バーカ。参照カウンタとか何次元の違う話をしてんだよ?猿は去れ。
645デフォルトの名無しさん:2012/07/18(水) 19:04:16.10
メモリリークってWinAPI叩いた時の話か?
そんな話ならいくらでもリークさせることができるぞ
でもそれNothingの代入と無関係だし

もしVBの世界でNothingを代入しないことによりメモリリークが発生したら、
それはVBのバグって事になるんだが
残念ながらVBにもバグは存在しえて、なるべくそれを回避しましょうってのが
Nothing代入推進派の一番の目的なんだよ
646デフォルトの名無しさん:2012/07/18(水) 20:22:52.41
>>645
真面目に言ってる?
647デフォルトの名無しさん:2012/07/18(水) 20:45:58.53
>>637
Win32APIを一切使わないコードだったら問題ないってこと?
648デフォルトの名無しさん:2012/07/18(水) 20:50:27.55
訂正
Win32APIをDeclareで呼び出すようなことを一切使わないコードだったら問題ないってこと?
649デフォルトの名無しさん:2012/07/18(水) 22:04:43.37
なんでそう極端なんだ?
650デフォルトの名無しさん:2012/07/18(水) 22:05:43.24
>>645
今日一番のアホ決定w
651デフォルトの名無しさん:2012/07/18(水) 22:35:40.51
10年以上前に終了した環境の話でよくそこまで盛り上がれるな
652デフォルトの名無しさん:2012/07/18(水) 22:39:56.03
そりゃ10年以上の思い出があるから語り尽きることはないだろう
653デフォルトの名無しさん:2012/07/18(水) 22:40:09.55
今の1/10以下のメモリ、1/1000のHDD、1/100000以下のCPU速度の時代でなんとかやってきたんだ
とるにたりない事柄だよね
654デフォルトの名無しさん:2012/07/18(水) 22:55:24.30
>>645
VB6にNothingを代入しないで
起こるメモリリークなんて無いよ。
655デフォルトの名無しさん:2012/07/18(水) 22:55:44.62
塵も積もれば山となる。
些細なリークも1000万回ループすれば
システムダウンを引き起こす。
いつの時代も本質は変わらんのだがね。
656デフォルトの名無しさん:2012/07/18(水) 22:56:21.79
>>645
VB6にNothingを代入しないことで
起こるメモリリークのバグなんて無いよ。
自分で書いたコードのバグであることが全て。
657デフォルトの名無しさん:2012/07/18(水) 22:56:44.18
>>654
10年前に終了した言語への入門者Welcome
658デフォルトの名無しさん:2012/07/18(水) 22:58:13.36
10年前に卒業したってばさw

Nothingを代入しないことで
VB6のバグでメモリリークになることは
ないってのが当時の結論。

今更蒸し返してどうする?
659デフォルトの名無しさん:2012/07/18(水) 22:58:40.45

   「メモリーリークなんて無いよ!」

見た事もない奴が見て来たかのように恣意的なカキコする昨今

660デフォルトの名無しさん:2012/07/18(水) 23:00:23.90
Nothingを代入しないことで起こる
メモリリークのバグって書いてるのに、

わざとらしく話をすり替えてるなw
661デフォルトの名無しさん:2012/07/18(水) 23:01:41.98
メモリリークしてる? VBのバグだって?


違う、お・ま・えのバグだ。

何度こうやって初心者を叩き潰したことかw
662デフォルトの名無しさん:2012/07/18(水) 23:01:54.22
モーダルフォームをNothingせずにOpen/Closeを1000回ループさせて
前後のメモリー消費量をかくにんしてごらん。
フォームにはボタンコントロールを最低1個、LoadイベントでEnableして
UnloadイベントでDisable。それだけでいい。
まあ、こんなのは序の口。
663デフォルトの名無しさん:2012/07/18(水) 23:02:58.33
>>662
それはお前のバグだ
664デフォルトの名無しさん:2012/07/18(水) 23:03:47.45
>>663
はあ?どこがバグなの?坊やよいこだねんねしなー ってか?w
665デフォルトの名無しさん:2012/07/18(水) 23:06:56.84
>>664
間違い指摘してやるから
再現するコード書いてみ。
666デフォルトの名無しさん:2012/07/18(水) 23:07:02.49
ごめん、LoadイベントでEnabledをFalseに、UnloadイベントでEnabledをTrueだった。
最近.netオンリーなんでVB6を忘れてしまってたわw
667デフォルトの名無しさん:2012/07/18(水) 23:08:33.30
>>665
へー、これだけ書いてあげてるのにコーディングできないんだ。
なんつー初心者。こいつVB6組めないくせに構ってほしくてレスしてる荒らしじゃん。
みんな相手スンナよ。
668デフォルトの名無しさん:2012/07/18(水) 23:10:30.05
>>662
こういうこと?

Dim f As Form1, i As Integer
Set f = New Form1
For i = 1 to 1000
f.Show
f.Visible = False
Next i
Set f = Nothing

Dim f As Form1, i As Integer
For i = 1 to 1000
Set f = New Form1
f.Show
f.Visible = False
Set f = Nothing
Next i
669デフォルトの名無しさん:2012/07/18(水) 23:11:34.96
>>667
えとな、ここに書かれていない部分に
お前のバグがあるんだよ。

具体的に言うと、Unload命令(使用しているなら)の引数はなんだ?
Unloadで書いている、Enabledはどのオブジェクトだ?
生成したオブジェクトを代入した変数はなんだ?
670デフォルトの名無しさん:2012/07/18(水) 23:12:26.05
センスねぇなぁ。

Call f.Show(vbModal)

671デフォルトの名無しさん:2012/07/18(水) 23:12:32.95
>>668
モーダルになっていない。

Unloadイベントに書いてない。

やり直し。
672デフォルトの名無しさん:2012/07/18(水) 23:14:10.64
Nothing入れてもTerminateイベントが間に合わないってやつか。
最近のPCは高速だから再現するかね?
673デフォルトの名無しさん:2012/07/18(水) 23:14:35.07
>672
全く関係ない。
674デフォルトの名無しさん:2012/07/18(水) 23:14:41.97
>>671
だから相手するなとあれほど・・・(笑)
675デフォルトの名無しさん:2012/07/18(水) 23:16:20.28
>>673
かんけいあるだろ?
Nothing代入しないとてTerminateイベントの発生が遅延されるぜ?
その結果予想される事は?
そんな事も分からんで
噛みついてたのか?www
676デフォルトの名無しさん:2012/07/18(水) 23:17:10.26
>>671
あーあ、可哀そうにwwww

腹イテwwww
677デフォルトの名無しさん:2012/07/18(水) 23:19:03.19
>>675
Terminateイベントの発生が遅れるだけだろ。

今話しているのはVB6のバグ。
本来起こり得ないメモリリークが発生するかって話。

Nothingを代入しないで、Terminateイベントの発生が
(意図せず)遅れるのはVB6のバグではない。

つまり、お・ま・えのバグだ
678デフォルトの名無しさん:2012/07/18(水) 23:20:15.15
>>668
Nothing代入するなって言われてんのに、なんでこの人代入してるんだ?
バグなんてないとか言う以前に、題意がわかってないんじゃないの?
学校でも勉強できないタイプだろ?
図星か?w
679デフォルトの名無しさん:2012/07/18(水) 23:21:57.05
>>645
> もしVBの世界でNothingを代入しないことによりメモリリークが発生したら、
> それはVBのバグって事になるんだが
違う。コード書いた奴のバグ

> 残念ながらVBにもバグは存在しえて、なるべくそれを回避しましょうってのが
> Nothing代入推進派の一番の目的なんだよ
違う。VBバグ回避ためではなく、Nothingを代入するのが正しいコードだから。
680デフォルトの名無しさん:2012/07/18(水) 23:23:27.44
Nothingを代入しなくても、変数がスコープから外れれば自動的にNothingが代入されるよ。

メモリリークは、単にプログラマがバグを書いてるだけ。
それをVBのせいにする奴はただのアホ
681デフォルトの名無しさん:2012/07/18(水) 23:25:58.78
Nothingを代入しなくても、メモリリークしない正しいコード

Dim f As Form1, i As Integer
For i = 1 to 1000
 Set f = New Form1
 f.Show vbModal
Next i

※Form1にコードは全くない
682デフォルトの名無しさん:2012/07/18(水) 23:31:44.23
意図的にメモリリークするバグを入れてみた。
アンロードされたあとにロードするから当然メモリリークする。

Dim f As Form1, i As Integer
For i = 1 to 1000
 Set f = New Form1
 f.Show vbModal
 Load f
Next i
683デフォルトの名無しさん:2012/07/19(木) 00:14:43.62
メモリ「リーク」の話だよな?
アホなコードがメモリを使いきる話じゃないよな?
684デフォルトの名無しさん:2012/07/19(木) 00:21:43.00
>>683
君がメモリーリークの意味を分かってないだけだって。
>>682は正真正銘のメモリーリークのサンプルになってるよ。

アホって誰のことだよ。
こういう人がいるからVBerって馬鹿にされる。
685デフォルトの名無しさん:2012/07/19(木) 00:46:28.32
アホが開放した気になって開放してないオブジェクトがメモリに居座ってる状態は、メモリリークと呼べるのかね

>>682の後に続けてみ
Dim fx As Form
For Each fx In Forms
    MsgBox f.Name
Next
686デフォルトの名無しさん:2012/07/19(木) 00:48:00.15
あ、ごめん
f.Nameは
fx.Nameの間違い
687デフォルトの名無しさん:2012/07/19(木) 00:54:48.88
>>685
重ね重ねお馬鹿だね。
「アホが開放した気になって開放してないオブジェクトがメモリに居座ってる状態」
がリークでなければ何をリークと言うのか言ってみな。

まあ、>>682のコードにもミスリードなところはある。
リークしているかどうかは数の問題ではないのだからループは余分。
1つで十分ですよ
688デフォルトの名無しさん:2012/07/19(木) 01:00:52.69
開放したオブジェクト(インスタンス)の使用していたメモリが開放されないならメモリリークといえるが
開放もしてないんだから、たんにプログラムでメモリを使ってるだけじゃないか

開放しないでどんどんインスタンス作成すれば、そのうちメモリを使いきるのは当然で、それはリークでもなんでもない
689デフォルトの名無しさん:2012/07/19(木) 01:07:23.57
Dim f As Form1, i As Integer
For i = 1 to 1000
 Set f = New Form1
 f.Show vbModal
 Load f
 Unload f
Next i

だね
690デフォルトの名無しさん:2012/07/19(木) 08:24:48.67
繰り返すがリークするのはプログラマのバグであって
VB6のバグじゃないよ。
691デフォルトの名無しさん:2012/07/19(木) 08:45:36.04
メモリリークってプログラマのバグで
はっせいするものでしょ
692デフォルトの名無しさん:2012/07/19(木) 08:49:07.76
なんか俺が寝た後に登場した奴バカばっかりだなw
ちょっと引っ張り杉たかwww
693デフォルトの名無しさん:2012/07/19(木) 10:29:00.47
>>662
>モーダルフォームをNothingせずにOpen/Close
根本的にやり方がおかしい。
つか、お前何の言語の話してるの?
FormにOpen/Closeとかいうメソッドないんだけど。

それに今問題になってるのは、NewしたオブジェクトをNothingを代入しなかったときに
メモリリークが起きるかどうか。
694デフォルトの名無しさん:2012/07/19(木) 10:31:22.02
リークするって奴は、再現可能な最小限のコード示すだけで証明できるのに、なんでやらないの?
できないんじゃないの?
695デフォルトの名無しさん:2012/07/19(木) 10:33:45.77
あれあれ?
Class_Terminateが走っても、メモリリークが起きえるって主張じゃ無かったの?
Formなんて関係無いでしょ。
それとも昨日の人は居なくなっちゃったの?
696デフォルトの名無しさん:2012/07/19(木) 11:01:49.48
>>675
> Nothing代入しないとてTerminateイベントの発生が遅延されるぜ?

されないよ。
されるというなら、根拠Please。
もっと言うと、遅延されてもどうということない。リークしなけりゃね。
遅延が問題だというなら、GCある言語は使い物にならないということになるね。
697デフォルトの名無しさん:2012/07/19(木) 12:45:55.48
何のためにFormをNewしてるんだろう?
俺今まで一回もNewしたことないよ。
698デフォルトの名無しさん:2012/07/19(木) 12:48:46.51
>>693
>FormにOpen/Closeとかいうメソッドないんだけど。

幼稚園児まで来たようだなwww
マジで意味わからないならかなりの知能障害だろ?www

こえーーーっ!!!
699デフォルトの名無しさん:2012/07/19(木) 12:49:34.92
>>695
関係あるっしょ?
700デフォルトの名無しさん:2012/07/19(木) 12:51:00.24
>>697
そんなことで絶望すんな。
VB6プログラマの中には標準コントロールをNEWできないと思ってる奴が
半数以上だからな。
お前はまだForm限定だから救いようがある。ガンガレ!!!
701デフォルトの名無しさん:2012/07/19(木) 13:01:57.64
駄目だコイツ
702デフォルトの名無しさん:2012/07/19(木) 13:06:29.73
>>699
は?FormにClass_Terminateなんかないけど?
703デフォルトの名無しさん:2012/07/19(木) 13:07:55.86
>>698
なにファビョってんのか知らないけど、俺用語使うと信用されないぞ
704デフォルトの名無しさん:2012/07/19(木) 13:12:40.18
Formの場合はFormsコレクションに格納されてることも
忘れないであげてください。

NewとNothingを繰り返して、どんどん消費増えてくのなんて
ヒープの断片化だろう・・・
どんな言語でも環境でも起こる。
705デフォルトの名無しさん:2012/07/19(木) 13:32:07.11
VB6でFormをNewしまくるコード書く奴とは仕事したくないね
706デフォルトの名無しさん:2012/07/19(木) 13:34:05.28
VB6以降の知識とごっちゃになってんじゃないの?
707デフォルトの名無しさん:2012/07/19(木) 13:47:38.95
メモリリークといえば IE webbrowser
708デフォルトの名無しさん:2012/07/19(木) 14:43:37.32
>>705
まあ、VB6は絶対メモリーリークが無い
あるとすれば書いた奴のバグだ
こう言い切る奴とだけは
仕事したくないね
709デフォルトの名無しさん:2012/07/19(木) 14:44:45.23
VB6は高速化のために意図してメモリハンドルを即時解放しないんじゃなかったっけ?
710デフォルトの名無しさん:2012/07/19(木) 14:46:42.10
オブジェクト指向言語でメモリーリークがあったら、それはフレームワークの責任。
プログラマはメモリ管理の呪縛から解かれるのが.netの売りじゃなかった?
だったらVB6やめて新しい方に進めばいい。

711デフォルトの名無しさん:2012/07/19(木) 15:23:54.32
>>709
だから、即時解放しようが少々遅延しようがいいのよ。リークしなけりゃ。
Class_Terminateの実行が遅延するとかいってる奴いるけど、そんなの嘘。
そこでリソースの解放すりゃいいのよ。
712デフォルトの名無しさん:2012/07/19(木) 15:32:45.89
だんだん話をずらして逃げに入ってきたな。
早くClass_Terminateが走っても、メモリリークが起きえるってこと証明してよ。
713デフォルトの名無しさん:2012/07/19(木) 15:42:15.17
そもそも言いだしっぺの奴はまだいるのか?
714デフォルトの名無しさん:2012/07/19(木) 15:43:00.89
踊らされてるのだとしたら悔しい。
715デフォルトの名無しさん:2012/07/19(木) 15:44:16.06
真昼間からまぁスレがよく伸びること
716デフォルトの名無しさん:2012/07/19(木) 15:51:59.50
ageてる奴がいるからでは?
717デフォルトの名無しさん:2012/07/19(木) 16:06:25.50
正確な用語の定義がないから、議論が成り立たないんだよ

とりあえず、メモリリークの定義から始めてくれないか
本来のメモリリークは、プログラムを終了させてもOSからメモリが開放されていない状態だと思うんだが
単にプログラムがメモリを使ってるだけでメモリリークだって言うやつまでいてるぞ
718デフォルトの名無しさん:2012/07/19(木) 16:27:26.02
>>717
> 正確な用語の定義がないから、議論が成り立たないんだよ
何いってんの?

> 本来のメモリリークは、プログラムを終了させてもOSからメモリが開放されていない状態だと思うんだが
お前の認識なんか興味ないんだよ
ggrks
719デフォルトの名無しさん:2012/07/19(木) 17:07:09.40
>>717
> 正確な用語の定義がないから、議論が成り立たないんだよ

成り立ってないことにしたいの?
720デフォルトの名無しさん:2012/07/19(木) 19:20:37.04
>>601
明示的にNothingを入れたとしても
解放されるとは限らない。
他から参照されてるかもしれないから。

VB6のガベコレは参照カウント方式で、
参照が無くなれば解放される。

メモリの再配置は行わないので、サクサクとは動作するものの
参照カウント方式なので、循環参照を作っちゃうとソフトが落ちるよ。
721デフォルトの名無しさん:2012/07/19(木) 19:31:32.75
>>718
あなたの認識を教えてください

>>719
ここ最近堂々巡りしてるように思えますが


議論はIDが出るところのほうがいいな。
722デフォルトの名無しさん:2012/07/19(木) 19:35:51.54
>>719
使用中のメモリが開放されないのをメモリリークだと言われたら
そら議論も成り立たんわ
723デフォルトの名無しさん:2012/07/19(木) 19:46:14.60
'Sub Main
Dim c As Class1
Set c = New Class1
Set c.c = c
Set c = Nothing

'Class1
Public c As Class1


でけた
724デフォルトの名無しさん:2012/07/19(木) 19:57:44.36
今、VB6がアツい!
725デフォルトの名無しさん:2012/07/19(木) 20:10:44.04
>>723
循環参照はプログラム終わるまで開放されない仕様だったはず
プログラム終わっても開放されないなら、リークするVBのバグ
そうでないなら単にプログラマのミス
726デフォルトの名無しさん:2012/07/19(木) 20:31:17.32
これは?

'Class1
Dim c As Class1
Private Sub Class_Initialize()
Set c = New Class1
End Sub
727デフォルトの名無しさん:2012/07/19(木) 20:32:05.43
走らせるの怖くてできない
728デフォルトの名無しさん:2012/07/19(木) 20:33:28.74
このClass1のインスタンス生成するコードを書き込んでデバッグ実行せずexe生成して配布。
729デフォルトの名無しさん:2012/07/19(木) 20:36:43.08
普通にコンパイルエラー出るだろ
730デフォルトの名無しさん:2012/07/19(木) 20:47:25.60
>>722
昨日から頭悪いなおたく。
どのメモリーもCPUやOSから見たら使用中に決まってる。
もしそれをどんな場合でも機械的に判断可能であるならリークなんて問題は発生しない。

つまり、リークしているかどうかは、言ってみればそこにプログラマの意図があるかないかの違いに過ぎない。
同じように確保されたメモリーがあっても、プログラマが開放を忘れていればリークであり、
そうでなければリークでない。

それが開放可能な状態であるかどうかは必ずしも関係ないの。
731デフォルトの名無しさん:2012/07/19(木) 21:01:46.99
>>730
元オウムの上祐よろしく論点をずらすのがお得意のご様子。辛いなら早く謝っちゃいなよ。
732デフォルトの名無しさん:2012/07/19(木) 21:03:13.39
「リーク」という言葉のお遊びに発展でつか?

VB6ユーザーのレベッルっていったい・・・。

プププッ!!
733デフォルトの名無しさん:2012/07/19(木) 21:09:35.20
そんなくだらない議論よりもアクティブ状態のVB6のフォームが最前面から画面の後ろに回ってしまう原因は何なの?
分かった事はフォームのあるプロシージャ―でコントロールへのVisible = False → True をコメントアウトしたらでなくなった。
処理中にコントロールを操作禁止にするためにVisible = False、そして禁止期間終了後にVisible = Trueってよくやるよね?
こんなことが原因でフォームが後ろに回り込む理由がわからんわ。
734デフォルトの名無しさん:2012/07/19(木) 21:16:07.25
質問内容というより質問の仕方がVBerらしいねw
それで他人様に内容が伝わるとでも思ってるんだろうか
735デフォルトの名無しさん:2012/07/19(木) 21:17:49.99
Javaとか.NETなら、

親オブジェクトに子オブジェクトを、
子オブジェクトに親オブジェクトを
持たせたりするけど、

VB6じゃそれをやらない。
736デフォルトの名無しさん:2012/07/19(木) 21:32:32.20
>>733
そのVisible = False → Trueの瞬間に、君が予期せぬ悪魔が動き出してるのさ。
悪魔が来たりて画面を裏に回す。VB6では日常茶飯事。
だから熟練VB6プログラマは安易にVisibleを変更しない。
コントロールのイベント内でフラグを見て抜けるように作る。
これは予期せぬ再入の防止にもなるから効果的だよ。
737デフォルトの名無しさん:2012/07/19(木) 21:37:33.93
おれはすべてのプロシージャで

Static is_ent As Boolean

If is_ent Then Exit Sub

is_ent = True

処理

is_ent = False

Exit Sub


これを必ず書いている玄人志向。
738デフォルトの名無しさん:2012/07/19(木) 21:38:17.31
HogeClassがあるとして、
(HogeClassは外部に何も関係しない)

Private Sub Form_Load()
  Dim c As HogeClass
  
  Set c = new HogeClass
End Sub

これ、Form_Loadを抜けて解放されない?
いちおう、Class_Terminate()は呼び出されるけど。

もし、この c インスタンスから標準モジュールの
setCメソッドを呼び出して
  Call MainModule.setC(Me)
なんてやった日にゃ、解放されるわけもないけど、
そういうのは無しとして、スコープ抜けたら
  Set c = Nothing
しなくても、解放されると考えていいかな?
~~~~~~~~~~~

'標準モジュールMainModule.bas---------------------------------
Private c As HogeClass

Public Sub setC(c_ As HogeClass)
  Set c = c_
End Sub

739デフォルトの名無しさん:2012/07/19(木) 21:40:43.37
>>738
ケースバイケースでしょう。
単純に今提示されている条件だけなら
開放されるはず。
740デフォルトの名無しさん:2012/07/19(木) 21:41:01.84
>>737
それ、どういう効果あるのかな…

マルチスレッドで、JavaでいうSyncronized的なもの?
741デフォルトの名無しさん:2012/07/19(木) 21:43:11.94
s_ent = Trueを実行する前にプロシージャ呼ばれたらお終いだな
742デフォルトの名無しさん:2012/07/19(木) 21:43:32.42
>>730
お前のリークの定義は解った
とりあえずお前はNothing代入議論には参加するな
743デフォルトの名無しさん:2012/07/19(木) 21:44:03.53
>>737
Option Explicitのように、本来全てのプロシージャ―、クラスで再入禁止をデフォにするオプションがあるべきだよ。
Option Unreantrance のような。再入が必要な時だけ明示的に解除してやればいい。
再帰処理なんてそう多く使わないのだから。
744デフォルトの名無しさん:2012/07/19(木) 21:44:56.44
>>738
だから、個別のケースごとに場当たり的に覚えるんじゃなくれ理屈を理解しようよ。
理屈は既にいろんな人が書いてるじゃん。

VBではどこからも参照されなくなったオブジェクトは破棄される。
プロシージャレベルの変数は制御がそのプロシージャから抜けたらどうなるんですか?
745デフォルトの名無しさん:2012/07/19(木) 21:47:17.23
>>743
そんなトンデモな主張をするのはVBer以外にいないと思う。
746デフォルトの名無しさん:2012/07/19(木) 21:49:07.41
>>737
再突入するかどうかも考えずに全ての処理に書いてるのであればとても素人くさい

>>740
シングルスレッドでも、下手にDoEventsとか使うと再突入する可能性がある
その場合に処理したくないなら有用なコードではある
747デフォルトの名無しさん:2012/07/19(木) 21:49:26.55
>>744
この738の例が全てだと俺は思ってるが…

お前の言う
>どこからも参照されなくなったオブジェクトは破棄される
これな。

それにしても、こんなにVB6スレが賑やかになるなんて
捨てたもんじゃないな。
748デフォルトの名無しさん:2012/07/19(木) 21:50:47.23
>>746
あ、DoEventsか。
めったに使わないから頭から抜け落ちてた。
749デフォルトの名無しさん:2012/07/19(木) 21:52:17.77
732とか734みたいな煽るだけの書き込みも邪魔だから参加してほしくないな
750デフォルトの名無しさん:2012/07/19(木) 21:53:18.23
>>741
するどいね。その通り。気休めでも効果はかなりあったので良しとしてる。
実際には再入をログして統計で見てたりするんだけど
驚くことに意図していない再入があまりにも多く発生している事に気づくよ。
たとえばプロシージャ―を半分まで処理中にそのプロシージャ―が呼ばれる。
そんなことを想定してクリティカルセクションばりのコーディングしてる
VB6プログラマなんて皆無だと思うんだけど。

これがVB6プログラムの品質が劣化視される理由の重要要因だとおれは思ってる。
751デフォルトの名無しさん:2012/07/19(木) 21:53:41.59
ここってこんな活気あるスレだったっけ?と
752デフォルトの名無しさん:2012/07/19(木) 21:55:42.91
>>750
勘違い甚だしいな。
そもそも意図しない再入が起こるようなコードの書き方に問題があるとは思いませんか?
753デフォルトの名無しさん:2012/07/19(木) 21:58:30.71
>>746
問題はDoEvent以外にも再突入する機会があるって事。
調べたけどネットには情報が無かった。でも俺は2点知ってる。
これが今話題になってるメモリーリークとつながる可能性もあると思ってる。
VB6は君らが思っているほど初心者向け言語ではないぞ。
一旦闇に踏み込むと抜けられない低品質プログラムが出来上がる。
754デフォルトの名無しさん:2012/07/19(木) 21:58:36.77
>>750
俺もよくわからない問題が生じた時に再入をログしたり
して調べた事は何度もあるんだが、再入が発生している
事は無かった(もちろん意図的な再入はある)。

お前さんとことソフトの設計自体が違うのかなあ。
755デフォルトの名無しさん:2012/07/19(木) 22:00:13.68
>>752
なら聞くがあなたが把握しているVB6における再突入の可能性を列挙してごらん。
たぶんDoEventsくらいしか思いつかないのだろうし。
756デフォルトの名無しさん:2012/07/19(木) 22:00:33.38
DoEventsを多用して
Timerコントロールなどのイベントが発生とか?
APIでコールバック関数使ってるとかかか?
757デフォルトの名無しさん:2012/07/19(木) 22:01:00.81
>>754
急に再入をログしたことがありますとか言われても、にわかに信じがたいよ。

無理。
758デフォルトの名無しさん:2012/07/19(木) 22:02:07.88
>>754
よくわからない問題が生じるなんて事自体がビギナー臭い。クンクンw
759デフォルトの名無しさん:2012/07/19(木) 22:02:17.60
>>753
もちろん(アホな)プログラマが意図しない再入を起こす原因はDoEventsだけではないけど、
重要なことは、少なくとも(アホでない)プログラマは意図しない再入が起こらない
コードを書けるということ。
760デフォルトの名無しさん:2012/07/19(木) 22:03:14.10
>>756
>APIでコールバック関数使ってるとかかか?

それって逆に考えづらいのでは?
761デフォルトの名無しさん:2012/07/19(木) 22:04:23.13
>>759
キミがその(アホでない)プログラマーでるようにはとても見えないんだけどまあいい。
今日はもう帰ってもいいよ。
762デフォルトの名無しさん:2012/07/19(木) 22:05:47.84
>>755
アホプログラマにありがちなシナリオは、

(1) タイマーのイベントハンドラの中からモーダルなウィンドウを表示してる

(2) コントロールのプロパティーの変化時に呼ばれるイベントハンドラの中から
その同じコントロールの対象のプロパティーの値を変えている。

もう10年以上VB6使ってないからぱっと思いつくのはこのぐらい。
763デフォルトの名無しさん:2012/07/19(木) 22:06:36.22
>>750,754
俺も「意図しない」再入でバグった事はある
が、調査して再入の原因が解らなかった事はない

原因も解らずわけのわからん動作するほど不安定な開発ツールではないぞ
764デフォルトの名無しさん:2012/07/19(木) 22:07:05.83
再突入してExit Subで切り抜けるというのも
何か問題が生じそうに思うのだが
765デフォルトの名無しさん:2012/07/19(木) 22:07:11.50
DoEventsを使用した時点で再入の可能性は発生するだろうに。
DiEventsを使う前提で「意図しない再入」とか言ってる時点で終わってないかい?
もしかして、今お騒がせのメモリーリーク君かな?www
766デフォルトの名無しさん:2012/07/19(木) 22:08:39.40
>>764
発生しないだろ?発生すると思うなら具体例を挙げろよ。Exit Subの前には変数定義しかないという前提でだぞ!
767デフォルトの名無しさん:2012/07/19(木) 22:14:14.96
>>766
>is_ent = True

>処理

>is_ent = False

この「処理」をお願いしてるのに、せずに終わっちゃうわけでそ。
期待した処理が行われないのは問題が生じないか?
768デフォルトの名無しさん:2012/07/19(木) 22:15:41.37
>>737の方法は完璧ではないが、実践的な視点でのトレードオフとしては優れた対策だと思いますが。
リエントラントでないルーティンに発生する再入のかなりのケースで有効な防御となり得る気がしますけれど。
769デフォルトの名無しさん:2012/07/19(木) 22:19:01.92
>>767
お前馬鹿じゃない?リエントラントなプロシージャ―にそれを書くはずないだろ?
VB6プログラマには常識の枠ってのが無いの?怖い連中だねw
770デフォルトの名無しさん:2012/07/19(木) 22:22:13.82
>>769
737 名前:デフォルトの名無しさん[] 投稿日:2012/07/19(木) 21:37:33.93
おれはすべてのプロシージャで
771デフォルトの名無しさん:2012/07/19(木) 22:23:24.54
>>769
>>737は「おれはすべてのプロシージャで」と言っている。
「すべて」と言っている以上、突っ込まれても仕方なかろう。
彼には例外処理の記述が必要だった訳さ。

VB6はTry Catch も使えん化石言語だから
それを言うのも酷かな?w
772デフォルトの名無しさん:2012/07/19(木) 22:25:02.24
ねえ、この流れはどうやったら終わりになるの

これこそ再入繰り返してる気がするんだけど

煽ってるだけのやつはビシッと意見を出せよ
他人へのレスだけじゃなくてさ
773デフォルトの名無しさん:2012/07/19(木) 22:28:49.20
頑張ってみたけど エラーでなかった
Sub hoge(n As Integer)
Static f As Integer
If f > 0 Then Exit Sub
f = f + 1
Debug.Print n
If f > 1 Then Debug.Print "Error "; f
Dim i As Long, d As Double
d = 1
For i = 0 To 100000
d = d + 1#: d = d / 2#: d = d * 2#: d = d - 1#
DoEvents
Next i
f = f - 1
End Sub

Private Sub Command1_Click()
Call hoge(3)
End Sub

Private Sub Form_Load()
Timer1.Interval = 1
Timer2.Interval = 1
End Sub

Private Sub Timer1_Timer()
Call hoge(1)
End Sub
774デフォルトの名無しさん:2012/07/19(木) 22:30:25.42
1.投げられてきた大量のデータをファイルに保存
2.大量だから処理のループ中にDoEvents
3.処理が終わる前に次のデータが来た
4.is_ent = Trueなので、次のデータを無視してExit Sub

Javaだとメソッドをsyncronizedにしてtry catchでwait→再試行ってとこか?
再試行回数上限に達したらエラーログに残す
775デフォルトの名無しさん:2012/07/19(木) 22:33:48.37
>>774
>4.is_ent = Trueなので、次のデータを無視してExit Sub

「次のデータ」は全く記録されずに終わるのか。
776デフォルトの名無しさん:2012/07/19(木) 22:38:02.51
>>774
これはリエントラントであるはずないが
処理上問題が生じてるという例か?
777デフォルトの名無しさん:2012/07/19(木) 22:44:22.21
これはソフトが落ちるという事はないけど、
処理的には問題があるね。
778デフォルトの名無しさん:2012/07/19(木) 22:58:06.10
じゃあこうか??
Static is_ent As Boolean

Do While is_ent
DoEvents
Loop

is_ent = True

処理

is_ent = False

Exit Sub
779デフォルトの名無しさん:2012/07/19(木) 23:01:39.76
>>774
投げられてきた大量のデータはファイルに保存される直前にどういう状態にあるの?
メモリーの中に存在するの?それともファイルの中?
処理が無視されても元データは存在するのだから、保留にして次のエントリーで処理すればいいじゃん?
なんか意図的に問題を作ろうとしているような気がしてならないけど?
780デフォルトの名無しさん:2012/07/19(木) 23:07:50.79
>>778
処理に3秒かかるとして、処理要求が1msごとに発生したら面白い事になりそうなコードですねw
781デフォルトの名無しさん:2012/07/19(木) 23:18:39.58
>>779
引数で配列として持ってきたらアウトだな

1回目配列数10000、2回目配列数1

再入でExit Subしたはいいものの
配列の数が変わっちゃってるので
「インデックスが有効範囲にありません」。

引数で配列というのはダメだな。
782デフォルトの名無しさん:2012/07/19(木) 23:41:27.62
>>737
Exit SubじゃなくてExit Fuctionにして返り値として成功か失敗かを返せばいいじゃん
783デフォルトの名無しさん:2012/07/19(木) 23:42:11.61
>>781
再入不可のプロシージャで引数に配列使っちゃいけないって言われたようでショック。
コレクションでもインデックスやイテレータでアクセスするのも問題有りだよな。

DoEventsを使わないっていうのを徹底するとして
他に再入可能性のあるコードになりそうなのを教えて欲しい。
784デフォルトの名無しさん:2012/07/19(木) 23:43:03.23
>>778
それは「処理」の部分で、そのルーティンを再度呼び出すってことか?
普通にループする気がするんだが
VBはシングルスレッド動作だぞ
Whileループ中にDoEventsしても、is_entが変更されることはないだろ
785デフォルトの名無しさん:2012/07/19(木) 23:43:31.08
>>782
ByRefの引数を戻り値の代わりに使うという手もあるぞ。
ただし>>781のような問題は残る。
786デフォルトの名無しさん:2012/07/19(木) 23:47:36.19
>>783
再入不可なのに、呼び出すのが間違ってるだろ
呼び出す前に呼び出して良いかどうか判断できるようにコーディングするべき

DoEvents以外で思いつくのはタイマー系とAPIでコールバック系ぐらいしか思いつかん
APIでスレッド関係いじるのは論外として、それ以外であるか?
787デフォルトの名無しさん:2012/07/19(木) 23:51:15.13
>>786
タイマー系で再入ある?
2年ぐらい前の案件で、RS232C通信使った糞重たいソフトを触ったが
普通に処理を待たされていた(から糞重たかった)。
DoEventsは1箇所も無かったな。
788787:2012/07/19(木) 23:54:48.25
>>786
それと

>再入不可なのに、呼び出すのが間違ってるだろ

>>781の例見てたら、再入不可のプロシージャ全て引数に
配列使っちゃいけないっていう印象受けたんだけど。

俺の結論として
・再入不可のプロシージャにDoEventsとAPIコールバック系と配列の引数は使うな
という事になった。
789デフォルトの名無しさん:2012/07/20(金) 00:07:29.92
配列だけダメってのが理解できんが
そもそも、再入不可だっていってるのに、再入してからそのルーティンで
判断してどうこうっておかしいだろ
790デフォルトの名無しさん:2012/07/20(金) 00:14:21.35
まあ、ダメな人は肝心なことが分かってないね。

だから最初から意図しない再入が起こることそのものが問題なんじゃありませんかと言ってるんだが、
話が通じてない。

それも死亡宣告されてから10年経過してる言語でってどういうことだよ。
少なく見積もって10年は触っててこの体たらくなの?
791デフォルトの名無しさん:2012/07/20(金) 00:17:41.83
Private col As Collection

'hogehogeを呼び出す前に、colにaddしておく
Private Sub hogehoge()
  Static is_ent As Boolean

  If is_ent Then Exit Sub

  Do While True
    If col.Count <= 0 Then
      Exit Do
    Else
      Dim hoge As String
      hoge = col.Item(1)
      Call col.Remove(1)
      '処理---------------------
      DoEvents
    End If
  Loop

  is_ent = False
End Sub

これで再入を無視しても大丈夫!
それにしてもDoEvents使っても再入して欲しくないものをis_entで処理って
面倒だね。実質、配列やコレクションの引数が使えない。

>>789
そもそも再入不可プロシージャで Static is_ent で逃げるのは間違いだと?
792デフォルトの名無しさん:2012/07/20(金) 00:22:27.01
こうやって外に持たせれば

Private isHogeEnt As Boolean

'hogeを呼び出す前にisHogeEntを確認する-----------
Private Sub hoge(foo() As String)
  isHogeEnt = True

  '処理

  isHogeEnt = False
End Sub

is_ent に比べて、スコープ広いってのが嫌だけど。
793デフォルトの名無しさん:2012/07/20(金) 00:34:10.30
>>791
再入可能で、再入しても無視しますよ、ってんならともかく
そのルーティンのローカル変数は、そのルーティンに入らないと使えないんだぞ
つまり再入してみるまで再入かどうか解らないんだぞ
それでどうやって再入不可を判断できるってんだ?

配列やコレクションの引数が使えないってものイマイチ良くわからんが
引数が変更される事を考えれば、参照渡しやオブジェクは全部まずいだろ
まあそもそもその引数は誰がどうやってセットしたのって話だが

あとあれだ。DoEvents使ったからって、マルチスレッドで非同期で動くような事にはならないから
なんでもかんでも再入するわけじゃないぞ
794デフォルトの名無しさん:2012/07/20(金) 04:34:22.34
スレ速やヴぇえええ!本当にVB6かよ!
795デフォルトの名無しさん:2012/07/20(金) 11:33:13.91
>>794
どの言語でも非常に重要なミッションクリティカルな問題を
なんとVB6プログラマが解決しようって試みてるんだから滑稽だけど
さすが老害熟練プログラマだけあってすごい枯れたパワーを感じる。
20代の人間力に欠ける若手プログラマにはこれができない。
796デフォルトの名無しさん:2012/07/20(金) 11:35:03.40
つまり、マルチスレッドに対応してない言語なのにマルチスレッドを前提としたコーディングを
言語システムのサポートなしにやろうって事でFA?

797デフォルトの名無しさん:2012/07/20(金) 11:51:37.27
>>720
> 明示的にNothingを入れたとしても
> 解放されるとは限らない。
> 他から参照されてるかもしれないから。

もう、主張した本人はやめたがってるのかもしれないけど、今問題になってるのは、
参照カウントがゼロになってClass_Terminateが動作してもメモリリークする場合が
あるのかどうかということ。

> VB6のガベコレは参照カウント方式で、
> 参照が無くなれば解放される。

それ、ガベコレって言うのか?

> メモリの再配置は行わないので、サクサクとは動作するものの
> 参照カウント方式なので、循環参照を作っちゃうとソフトが落ちるよ。

落ちるかアホ。
アルゴリズムとデータ構造勉強し直せ。
798デフォルトの名無しさん:2012/07/20(金) 12:19:16.41
>>750 >>754 >>756
関数に入ってis_ent = Trueまでの間に
同じスレッド内で別の関数に制御を移す方法を
まさに探してるので、教えてほしい。
タイマーコントロールもSetTimerもSetWaitableTimerも
DoEventsやSleepExなしでは割り込めてない。
799デフォルトの名無しさん:2012/07/20(金) 12:50:41.85
VB6プログラマに、リエントラントの正しい実装法を知らない奴が多いということだけはわかった
800デフォルトの名無しさん:2012/07/20(金) 12:51:50.05
>>799
早くも負け惜しみかよw
801デフォルトの名無しさん:2012/07/20(金) 12:53:57.05
>>798
RiseEventの隠し機能を使って指定プロシージャーへダイレクトリンクではダメなの?
802デフォルトの名無しさん:2012/07/20(金) 12:54:37.22
>>798
そんな時のGOTO文ですよ。
803デフォルトの名無しさん:2012/07/20(金) 13:01:45.56
そもそも、再入する可能性がある関数で、データをファイルに保存とかしちゃ駄目でしょ
804デフォルトの名無しさん:2012/07/20(金) 13:03:24.00
>>803
まったく話に乗れてない人が参入。また荒れそうな予感。
805デフォルトの名無しさん:2012/07/20(金) 13:15:49.56
乗れてないということにしないと都合悪いのか
806デフォルトの名無しさん:2012/07/20(金) 13:18:42.62
>>804
お前が荒らしてるんだろアホ
807デフォルトの名無しさん:2012/07/20(金) 14:42:32.75
>>805
乗れてないだろw
808デフォルトの名無しさん:2012/07/20(金) 14:46:33.75
VB6はシングルスレッド前提と言うのが初心者でもとっつきやすい特長のひとつだったのに
ちょっと踏み込むとこんな問題に悩まされるのか?たまんないね。
複雑な部分を隠しているがゆえに隠し切れない問題が露呈するとプログラマはパニックになる。
0を代入したはずの変数が、デバッガで1行進ませてその変数をウォッチすると7が入ってる!
なんでだ!絶対にあり得ん!糞言語ジャン!って事になる。否定はしないがなwwww
809デフォルトの名無しさん:2012/07/20(金) 14:48:17.74
>>808
再入した方のプロジージャー(つまり変数に7を設定した方)はブレークポイントで止まるのかな?wwww
810デフォルトの名無しさん:2012/07/20(金) 14:51:56.61
止まるよ
811デフォルトの名無しさん:2012/07/20(金) 15:01:42.54
>>808
何いってんだおまえ
812デフォルトの名無しさん:2012/07/20(金) 15:08:37.83
>>801
>RaiseEventの隠し機能
kwsk
813デフォルトの名無しさん:2012/07/20(金) 15:18:55.99
VB6プログラマは何故そんなに暇なのか
814デフォルトの名無しさん:2012/07/20(金) 15:42:33.98
>>812
隠しでもなんでもなくて、RaiseEventしたらListener全員のハンドラが実行されるって事では?
815デフォルトの名無しさん:2012/07/20(金) 17:23:18.92
>>813
DICOMサーバーで大当たりして一儲けしたから稼がなくてもいいんだろうよ。
こっちは例の日IBMとスルガの煽りを受けて倒産寸前だっつーのによ。
816デフォルトの名無しさん:2012/07/20(金) 18:56:48.38
>>815
(´・ω・) カワイソス
817デフォルトの名無しさん:2012/07/20(金) 20:20:17.28
>>808
初心者がVB6ばっかやってると全然成長しない件について
818デフォルトの名無しさん:2012/07/20(金) 20:38:55.76
初心者が趣味グラマで作りたい物がVB6で十分足りるのなら無問題
819デフォルトの名無しさん:2012/07/20(金) 21:00:11.73
だから、10年も前に死亡宣告されてる言語で初心者も糞もあるか。
820デフォルトの名無しさん:2012/07/20(金) 21:03:45.50
自分が便利に使いたくてツールアプリをときどきは作ってたけど
10年たった今でも初心者レベルのことしか出来ないから俺は初心者でいいよ
821デフォルトの名無しさん:2012/07/20(金) 23:44:06.79
VB6の利点があるとすれば…
VB6で作った標準モジュール、クラスモジュールを
ExcelVBAに取り込める点にあるか。
822デフォルトの名無しさん:2012/07/21(土) 00:05:51.59
随分苦しい擁護だな
823デフォルトの名無しさん:2012/07/21(土) 00:38:48.44
VB.NETの配列宣言の添字はC#とかと同じになるはずだったのに
開発者の反対でVBと同じになったんだよな

VBS/WSH/WMIも結構使ってるとこあるよねー
824デフォルトの名無しさん:2012/07/21(土) 15:29:11.56
>>821
.Netよりさくさく動くよ
>>820の用途ではVB6一択だと思うんだけどなぁ
825デフォルトの名無しさん:2012/07/21(土) 18:25:58.51
C#って中間言語を使用しないネイティブコンパイラが存在するのか?
826デフォルトの名無しさん:2012/07/21(土) 18:46:08.71
何が「するのか?」だ。
.NETが普及してから何年経ってるんだ。
827デフォルトの名無しさん:2012/07/21(土) 19:05:06.73
>>826
いや、CLIなしに直接アセンブラを吐けるC#があるのかと思っただけ。
828デフォルトの名無しさん:2012/07/21(土) 20:18:28.59
なぜそれを.NETですらないVBのスレで聞くのか
829デフォルトの名無しさん:2012/07/21(土) 20:50:09.11
そこにスレが有るからさ
830デフォルトの名無しさん:2012/07/24(火) 23:28:51.83
VB6でボタンの背景を任意の開始色〜終了色でグラデュエーションをかけて表示したいのですが
どうすれば可能でしょうか?Pictureやフォームではできるのですが。
831デフォルトの名無しさん:2012/07/24(火) 23:49:46.21
VB6からの卒業
832デフォルトの名無しさん:2012/07/24(火) 23:51:36.67
>>830
ボタンは無理だよ。
833デフォルトの名無しさん:2012/07/25(水) 00:00:51.88
>>830
Form1にCommandBox PictureBox Timerを1つずつ貼り付ける
デザイン時に
Command1 (CommandButton)
Style = 1 (グラフィックス)
Picture1 (PictureBox)
ScaleMode = 3 (グラフィックス)
Width と HeightをCommand1と同じに
Timer1 (Timer)
Interval = 100

コードを
Private Sub Timer1_Timer()
 Dim x1!, y1!, x2!, y2!
  With Picture1
  x1 = Rnd() * .ScaleWidth
  x2 = Rnd() * .ScaleWidth
  y1 = Rnd() * .ScaleHeight
  y2 = Rnd() * .ScaleHeight
  Call .Line(2, x1, y1, x2, y2, CLng(Rnd() * vbWhite))
 End With
 Set Command1.Picture = Picture1.Image
 Command1.Refresh
End Sub
834デフォルトの名無しさん:2012/07/25(水) 00:02:50.33
グラデーションじゃねええええええええええええええええ
835デフォルトの名無しさん:2012/07/25(水) 00:23:24.86
>>834

フォームにCommandButtonを1つ、PictureBoxを3つ貼り付ける
デザイン時プロパティの設定
Command1
 Style = 1 (グラフィックス
Picture1,Picture2,Picture3共通
 ScaleMode = 3 (ピクセル)
 AutoRedraw = True
 Visible = False
 Width,HeightをCommand1と同じサイズに

コード

Private Sub Form_Click()
 Command1.Enabled = Not Command1.Enabled
End Sub

Private Sub Form_Load()
 Dim i&, c
 With Picture1
  For i = 0 To CLng(.ScaleHeight)
   Picture1.Line (0, i)-(.ScaleWidth, i), RGB(CInt(255 * i / .ScaleHeight), 0, 0)
   Picture2.Line (0, i)-(.ScaleWidth, i), RGB(0, CInt(255 * i / .ScaleHeight), 0)
   Picture3.Line (0, i)-(.ScaleWidth, i), RGB(0, 0, CInt(255 * i / .ScaleHeight))
  Next i
 End With
 Set Command1.DisabledPicture = Picture1.Image
 Set Command1.Picture = Picture2.Image
 Set Command1.DownPicture = Picture3.Image
End Sub
836デフォルトの名無しさん:2012/07/25(水) 00:24:14.41
>>834

フォームにCommandButtonを1つ、PictureBoxを3つ貼り付ける
デザイン時プロパティの設定
Command1
 Style = 1 (グラフィックス
Picture1,Picture2,Picture3共通
 ScaleMode = 3 (ピクセル)
 AutoRedraw = True
 Visible = False
 BorderStyle = 0 (なし)
 Width,HeightをCommand1と同じサイズに

コード

Private Sub Form_Click()
 Command1.Enabled = Not Command1.Enabled
End Sub

Private Sub Form_Load()
 Dim i&, c
 With Picture1
  For i = 0 To CLng(.ScaleHeight)
   Picture1.Line (0, i)-(.ScaleWidth, i), RGB(CInt(255 * i / .ScaleHeight), 0, 0)
   Picture2.Line (0, i)-(.ScaleWidth, i), RGB(0, CInt(255 * i / .ScaleHeight), 0)
   Picture3.Line (0, i)-(.ScaleWidth, i), RGB(0, 0, CInt(255 * i / .ScaleHeight))
  Next i
 End With
 Set Command1.DisabledPicture = Picture1.Image
 Set Command1.Picture = Picture2.Image
 Set Command1.DownPicture = Picture3.Image
End Sub
837デフォルトの名無しさん:2012/07/25(水) 00:29:28.54
???
こいつは何がしたいん?
838デフォルトの名無しさん:2012/07/25(水) 02:09:45.64
夏だからな
839デフォルトの名無しさん:2012/07/26(木) 09:34:16.33
VB6でライセンスサーバーを作ろうと思ってる
本格的なものでなく、ハッカーにかかったら丸見えレベルの物で問題ないんだが
やはりWinSockを使ってライセンス情報を授受するとかがスマートな実装なのかな?
何か良い実装例があるといいのだけれど。
840デフォルトの名無しさん:2012/07/26(木) 09:49:47.53
>>839
NetHASPとかじゃダメなの?高いけど商用なら可能じゃない?
HASP SRMとか鯖使ってアクチできるセキュリティソフトも販売してるみたいだけど。
841デフォルトの名無しさん:2012/07/26(木) 10:10:41.70
>>840
そんな本格的なのじゃなくていいんです。
目的はクライアントPC側でドングルを使ったプロテクトをかけずに
サーバー側で起動しているライセンスサーバーを見て起動を継続するようにしたいと思っています。
ライセンスマネージャーには何らかのプロテクトをかける必要はありますがシルアルナンバーとかで十分なレベルです。
842デフォルトの名無しさん:2012/07/26(木) 10:16:13.08
サーバーはWebサーバーでいいんじゃないの?
わざわざサーバーを自作しなくても
843デフォルトの名無しさん:2012/07/26(木) 10:34:12.82
VB6だけにWebサーバーとかだとSOAPとか余計に複雑になるんじゃねーの?
.netならWEBサービスとか作るの簡単だけどな。
844デフォルトの名無しさん:2012/07/26(木) 10:36:46.69
そういえば、はるか昔にVisual InterDev とかいう開発環境があったなwww
確かVisualStudio 6.0にも入ってたはずだがwww
845デフォルトの名無しさん:2012/07/26(木) 10:38:28.57
ASPならVBScriptだし、クライアントからならWinInet使えば
HTTP簡単に使えるし。
846デフォルトの名無しさん:2012/07/26(木) 10:53:07.63
わざわざWEBサーバー立ち上げるならメールスロットでも使った方が簡単だし実用的だろ?
ASPにVBScriptでできなくないだろうが複雑すぐる。
847デフォルトの名無しさん:2012/07/26(木) 11:04:03.19
>>846
こんなのがあるのか。面白いw
http://www.vector.co.jp/soft/dl/win95/prog/se364099.html
848デフォルトの名無しさん:2012/07/26(木) 11:12:12.00
メールスロットを使うくらいならソケット通信でいい気が刷る
849デフォルトの名無しさん:2012/07/26(木) 11:33:07.53
Winsockよりメールスロットの方が簡単だろ?
まあWindows限定ではあるが。
850デフォルトの名無しさん:2012/07/26(木) 11:37:21.68
みなさん、ありがとうございますm(_ _)m

今のところ

  メイルスロット > WINSOCK >> HTTP(ASP VBScript)+WinInet

という感じでしょうか。
851デフォルトの名無しさん:2012/07/26(木) 11:39:14.49
>>848
受信側の実装はメールスロットの方が楽だよ。
852デフォルトの名無しさん:2012/07/26(木) 12:44:51.33
え、Winsock超簡単じゃん。
コントロール貼り付けて10行くらいコード追加すれば、非同期通信できるもののできあがり。
853デフォルトの名無しさん:2012/07/26(木) 14:09:28.65
だよね。標準的技術だし。そっちのほうがいいよね。
854デフォルトの名無しさん:2012/07/26(木) 16:12:08.19
10行じゃ無理だろ。特に受信側。
メールスロットなら10行で余裕だけどな。
855デフォルトの名無しさん:2012/07/26(木) 16:15:06.71
WinsockでUDPだと同期処理が不可能に近い。まあ力技で無理やりやれば別だが。
メールスロットはメッセージが来るまで待機状態に出来るから広範囲なインプリメントが可能。
だてに非標準じゃないって事だ罠w
856デフォルトの名無しさん:2012/07/26(木) 16:26:01.61
Winsockで受信データ待機中にポーリング監視しなくて済む方法があれば・・・?
857デフォルトの名無しさん:2012/07/26(木) 16:29:30.82
>>856
ねーよアホ
858デフォルトの名無しさん:2012/07/26(木) 16:30:49.62
>>854
受信側とか頭悪い言葉使うなよ。

サーバ側の通信部分は、これだけでいい。
ブラウザでhttp://localhost:12345ってやれば、HTTPヘッダをdebug.printする。
3分で書けるじゃん。

Private Sub Form_Load()
  Winsock1.LocalPort = 12345
  Winsock1.Listen
End Sub

Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
  Winsock1.Close
End Sub

Private Sub Winsock1_ConnectionRequest(ByVal requestID As Long)
  Winsock1.Close
  Winsock1.Accept requestID
End Sub

Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
  Dim buf As String
  Winsock1.GetData buf
  Debug.Print buf
End Sub
859デフォルトの名無しさん:2012/07/26(木) 16:34:11.66
Winsock簡単すぎwww
メールスロットのコード頼む
860デフォルトの名無しさん:2012/07/26(木) 16:34:31.32
やはりWebサーバーだろう
暗号化したくなったらSSLもあるし。
861デフォルトの名無しさん:2012/07/26(木) 16:57:02.70
>>858
おいおい、いつからWinsock1なんてコントロールがVB6の標準に御仲間入りしたんだよ?www
862デフォルトの名無しさん:2012/07/26(木) 17:00:20.04
>>861
お前、何エディション使って仕事してんだよwww
863デフォルトの名無しさん:2012/07/26(木) 17:00:22.25
ラーニングエディッションだとWinSockコントロールが使えない
864デフォルトの名無しさん:2012/07/26(木) 17:09:05.64
メールスロット推しの奴って、ひょっとしてWinsockコントロールの存在を知らなかったのか?www
865デフォルトの名無しさん:2012/07/26(木) 17:11:21.97
ラーニングエディションを前提として回答すべきとかファビョるなよ
866デフォルトの名無しさん:2012/07/26(木) 17:17:26.60
これは恥ずかしい
867デフォルトの名無しさん:2012/07/26(木) 17:19:39.69
結局質問者は自分が考えてた方法が最適だったな
868デフォルトの名無しさん:2012/07/26(木) 17:36:06.37
まぁ質問者がラーニングエディション使ってる可能性もあるがな
869デフォルトの名無しさん:2012/07/26(木) 17:38:09.59
その場合質問者はWinsockAPIを使う気だったてことなのか?
870デフォルトの名無しさん:2012/07/26(木) 17:59:13.64
俺は生Winsock APIで書かれた、全て同期通信の数万行レベルのVB6の通信プロジェクトを引き継いだことがある
プロトコルの変更とか電文の追加とか地獄だったね
871デフォルトの名無しさん:2012/07/26(木) 18:07:04.48
その程度で地獄とは青いな
872デフォルトの名無しさん:2012/07/26(木) 18:23:46.41
真の地獄とは何百万行を指す
873デフォルトの名無しさん:2012/07/26(木) 20:22:10.46
やったことないけど、DCOMとかどうだろう

なんでいまさらVB6でそんなものを作りたいのか
874デフォルトの名無しさん:2012/07/26(木) 21:12:18.65
>>858
おおできた
875デフォルトの名無しさん:2012/07/26(木) 21:32:05.37
>>873
DCOMってRPCの一種だよな?DICOMと混同しそうで紛らわしい名前付けんなよ。
876デフォルトの名無しさん:2012/07/26(木) 21:32:47.36
>>870
Winsockで同期通信とかどうやったらできるのかねぇ?
877デフォルトの名無しさん:2012/07/27(金) 01:12:11.91
>>876
ブロッキングソケット使うだけでしょ
メッセージループを止めちゃうのであまりお勧めしないけど
878デフォルトの名無しさん:2012/07/27(金) 04:21:14.46
そもそも同期・非同期ってどの層で見てそう言ってるのか
879デフォルトの名無しさん:2012/07/27(金) 09:15:43.06
アプリケーション層?
880デフォルトの名無しさん:2012/07/27(金) 10:20:56.54
>>876
Winsockで非同期ソケットを使わない。

>>878
Winsockで非同期ソケットを使う。
881デフォルトの名無しさん:2012/07/27(金) 10:24:33.12
マジで知識が無くて知りたいというなら、これ読め。
http://www.kt.rim.or.jp/~ksk/wskfaq-ja/articles/io-strategies.html
http://www.kt.rim.or.jp/~ksk/wskfaq-ja/
882デフォルトの名無しさん:2012/07/27(金) 11:59:16.90
>>881
VB6とかけ離れてしまったな。下手なアドバイスの典型だわ。

商用OCXにいいのがあるだろ?
受信するとイベントが派生する優れものが。Poewr TCPとか言ったっけ?
883デフォルトの名無しさん:2012/07/27(金) 12:02:44.72
>>882
> 商用OCXにいいのがあるだろ?
> 受信するとイベントが派生する優れものが。Poewr TCPとか言ったっけ?

何いってんの?標準のWinsockコントロール使ったことないのがバレバレだわ
お前メールスロットがどうこう言ってた奴だろ
さっさとコードさらしてここから去れ
884デフォルトの名無しさん:2012/07/27(金) 12:06:17.44
>>883
メールスロット?何のこっちゃい?アホ?

別に標準コントロールで不足する機能を商用OCXでサポートして何か変なの?
標準のWinsockコントロールを使う美徳とかあんのか?
へぼプログラマーのひとりごとかね?
きんもーっ★
885デフォルトの名無しさん:2012/07/27(金) 12:09:36.95
Private Sub Winsock1_ConnectionRequest(ByVal requestID As Long)
  Winsock1.Close
  Winsock1.Accept requestID
End Sub

接続要求の処理でクローズしていいの?
886デフォルトの名無しさん:2012/07/27(金) 12:12:25.63
Winsock コントロールは Load、Unload を繰り返すとシステム リソース不足やメモリ不足状態に陥ることがある。
趣味の世界ではいいが、プロが使ってはダメだよ。
887デフォルトの名無しさん:2012/07/27(金) 12:16:54.97
>>885
接続が終了したのだからCloseしてもいいんだよ。
でも、実際にはポート番号は解放されずに使用中になってることがあり
再接続時にエラーとなることがある。不安定極まりない。
888デフォルトの名無しさん:2012/07/27(金) 12:19:01.72
>>886
だから市販のOCXを使えと?
889デフォルトの名無しさん:2012/07/27(金) 12:36:46.83
VB6暦10年なのに、LOADステートメントでコントロール配列を作れるなんて今初めて知ったwww
890デフォルトの名無しさん:2012/07/27(金) 12:42:58.69
>>858
そのコードだと、立て続けに2回起動/終了すると
2回目のWinsock1.LocalPort = 12345でポート使用中でエラーで落ちるね。
さすが三流プログラマだわw
891デフォルトの名無しさん:2012/07/27(金) 12:53:08.50
よっぽど悔しかったんだろうか。
もうやめてくれよ。
892デフォルトの名無しさん:2012/07/27(金) 12:57:19.56
ソケットの仕組み知らない奴多すぎでワロタ
893デフォルトの名無しさん:2012/07/27(金) 12:58:21.81
>>886
FormをNewする厨か?
なんでLoad/Unloadを繰り返す必要があるんだよ?
894デフォルトの名無しさん:2012/07/27(金) 12:59:48.23
ふつう、接続要求を受け付ける口と、実際にデータを送受信する口とを分けるんじゃない?
895デフォルトの名無しさん:2012/07/27(金) 13:01:02.92
>>891
ごめん、悔しくない。ちょっとからかっただけ。

だって3分で書いただけあって腹イテなソースだったので。
896デフォルトの名無しさん:2012/07/27(金) 13:03:31.41
>なんでLoad/Unloadを繰り返す必要があるんだよ?

TCPの場合、接続数分コントロールを用意する必要があるからだろ?
たとえば20台のクライアントから同時接続がある場合とか。
経験の浅い奴には推測できないのも無理ないか。
ソケットの仕組み知らない以前の問題だ罠www
897デフォルトの名無しさん:2012/07/27(金) 13:05:04.08
>>894
きっと3分じゃ無理だったんだろ?
10分あればまともに使えるコードが書ける奴だと思うよ。
898デフォルトの名無しさん:2012/07/27(金) 13:09:54.91
TCP/IPはBSDでCを使って組めと昔から決まってる
VBなんて話にならないしそもそもWindowsなんて論外
899デフォルトの名無しさん:2012/07/27(金) 13:10:11.01
VB6のソケットコントロールで複数接続のサーバーを
作ろうと思ったことなかった。
おまいらなんでもVB6でやろうとしすぎw
900デフォルトの名無しさん:2012/07/27(金) 13:11:49.66
いや、おまいらはまだVB6の潜在能力のすごさを知らない。
氷山の一角しか知らずして北極全体をを語るな。
901デフォルトの名無しさん:2012/07/27(金) 13:14:22.15
>>896
こんな感じか?

Private SubWinsock1r_ConnectionRequest(Index As Integer, ByVal requestID As Long)
i = i + 1
Load Winsock1(i)
Winsock1(i).LocalPort = 1234
Winsock1r(i).Accept requestID
End Sub

902デフォルトの名無しさん:2012/07/27(金) 13:37:21.77
>>894
1対1通信だから問題ないんだよ。デバッグはローカルでやってるし。
903デフォルトの名無しさん:2012/07/27(金) 14:08:20.59
>>894
コピペとはいえ、58秒かかったw
Private Dim intMax As Long

Private Sub Form_Load()
  intMax = 0  
  Winsock1(0).LocalPort = 12345
  Winsock1(0).Listen
End Sub

Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
  For i = 0 to Ubound(Winsock1)
   Winsock1(i).Close
  Next
End Sub

Private Sub Winsock1_ConnectionRequest(Index As Integer, ByVal requestID As Long)
  If Index = 0 Then
   intMax = intMax + 1
   Load Winsock1(intMax)
   Winsock1(intMax).LocalPort = 0
   Winsock1(intMax).Accept requestID
  End If
End Sub

Private Sub Winsock1_DataArrival(Index As Integer, ByVal bytesTotal As Long)
  Dim buf As String
  If Index > 0 Then
   Winsock1(Index).GetData buf
   Debug.Print buf
  End If
End Sub
904デフォルトの名無しさん:2012/07/27(金) 14:08:53.54
>>901
ド素人が。
LocalPort = 0だアホ。
905デフォルトの名無しさん:2012/07/27(金) 14:10:37.47
おっと、>>903とかぶってしまった。
メールスロット推しの奴は、早くコード貼れ。
906デフォルトの名無しさん:2012/07/27(金) 14:18:09.44
>>905
Winsock1(i).Close のところ、アレで良かったのかな?
907デフォルトの名無しさん:2012/07/27(金) 14:23:42.93
>>903
それだとクライアントが切断、再接続の都度Winsockコントロールが1つずつ増えて行くんだよな?
バッファオーバーフローでバックドアが開きそうで怖いわw
908デフォルトの名無しさん:2012/07/27(金) 14:33:59.04
uyの気持ちがちょっとわかったわw
誰かがちょっとコード貼ると、鬼の首取ったように批判するのな
駄目と思うなら、お前らが正解のコード貼れや
909デフォルトの名無しさん:2012/07/27(金) 14:42:07.08
>>907
クローズしたコントロールへの接続再割り当てとかまで考えると面倒だから
最初にクライアントの最大数を定義しておいて、その数+1だけWinsockコントロールをロードしておくのが
管理上ではスマートな実装だろうな。
910デフォルトの名無しさん:2012/07/27(金) 14:54:32.66
>>908
だいたい精査なんてそんなものだろう?

よくやってるじゃん。チェーン店メニューの商品開発で
「ミソ感が足りない」とか指摘する社長とか。

さらにミソ感だしたら辛過ぎてくえねーだろうが!みたいな。

でもなんかいわないとチェッカーとしての立場がないというか。
911デフォルトの名無しさん:2012/07/27(金) 15:02:13.97
MSDNライブラリVS6.0に書いてあるWinsockコントロールの説明を読めばいいんじゃないの?
もしくは同ライブラリ内のWinsockAPI関連の記事とか
912デフォルトの名無しさん:2012/07/27(金) 15:06:06.80
今時書き物を読んで開発する奴はいねぇーよ。直観でコーディングする時代だからな。
逆に直感で理解できないような開発環境はこれからの時代淘汰されるよ。
913デフォルトの名無しさん:2012/07/27(金) 15:07:39.65
>>911
>MSDNライブラリVS6.0に書いてあるWinsockコントロールの説明を読めばいいんじゃないの?

あなたこそ読んでみたのですか?
エラー処理とか接続の管理とかについては一切何も書かれていないけど?
ここにあるサンプルのコーディング程度のことしか書いてありませんよ。
914デフォルトの名無しさん:2012/07/27(金) 15:12:30.68
>>912
書き物を書いてるくらいじゃないと淘汰されるんじゃないの?
915デフォルトの名無しさん:2012/07/27(金) 15:52:20.18
>>906
一度接続したらアプリが終了するまで接続状態を維持するのか
一回のデータ授受で接続を閉じてListenにするのかで異なるだろ?
916デフォルトの名無しさん:2012/07/27(金) 16:11:32.97
一回の授受で閉じる?なにいってんだ?
917デフォルトの名無しさん:2012/07/27(金) 16:45:08.30
>>916
そういう仕様があってもおかしくないだろ?

Listen
ReceiveData
Close
Listen
ReceiveData
Close
 :
 :
918デフォルトの名無しさん:2012/07/27(金) 16:46:05.68
>>916
ファビョるなよ雑魚がw
919デフォルトの名無しさん:2012/07/27(金) 16:47:56.79
ブラックボックスなWinsockコントロール使うより
WinsockAPIを使って自前実装したほうがいいんじゃないの?
920デフォルトの名無しさん:2012/07/27(金) 16:48:40.91
でもAPIでやるならVBじゃなくても・・・ってことになるし
921デフォルトの名無しさん:2012/07/27(金) 16:51:20.60
>>917
それはおかしいよ?
ネット関係のプログラム作ったことないの?
922デフォルトの名無しさん:2012/07/27(金) 16:53:25.29
http://msdn.microsoft.com/en-us/magazine/jj133828.aspx
My rule of thumb for Visual Basic 6 was: if I couldn’t do it within 10 minutes, I couldn’t do it at all.

10分でできないものは無理!(やめとけ!)
923デフォルトの名無しさん:2012/07/27(金) 16:56:08.45
>>921
ソケットをCloseするとListenが解除されると思っているのでは?
924デフォルトの名無しさん:2012/07/27(金) 16:57:10.57
>>923
解除されるだろうが。アホかよ?
925デフォルトの名無しさん:2012/07/27(金) 16:58:40.33
これ以上話すのは無駄だからさ、月曜までソケットプログラムの勉強してきなよ
926デフォルトの名無しさん:2012/07/27(金) 16:59:03.91
ん?VB6のWinsockコントロールは一度設定されたListen(接続待ち状態)がCloseで解除されるのか?
927デフォルトの名無しさん:2012/07/27(金) 17:01:19.15
>>921
この人はデータ授受の都度クローズしてListenしてますよwwww
http://7ujm.net/VB/VB6TCPIP.html


928デフォルトの名無しさん:2012/07/27(金) 17:06:45.54
>>927
これ以上話すのは無駄だからさ、月曜までソケットプログラムの勉強してきなよ
929デフォルトの名無しさん:2012/07/27(金) 17:10:21.22
なんで土日に勉強せなあかんねんw
930デフォルトの名無しさん:2012/07/27(金) 17:11:01.85
接続待ちの状態にしたい時にListenにするだけの話だろ?
たとえばクライアントから接続要求が来た時点では
接続を待つ必要が無いのだからCloseしてListenを解除してもかまわない。
サンプルコードではListen用のソケットを個別に設けているのだから
サーバー側はアプリが終了するまでCloseする必要性がない。
最大接続数を超過した場合はどうなるか知らんが。
931デフォルトの名無しさん:2012/07/27(金) 17:14:14.10
MSDNライブラリVS6.0のWinsockコントロールのAcceptメソッドの説明のページのサンプルコードだとCloseしてるよ
932デフォルトの名無しさん:2012/07/27(金) 17:15:08.78
最大数来たらCloseすればいいんだろ
933デフォルトの名無しさん:2012/07/27(金) 17:15:58.14
>>858のサンプルだと、ブラウザでhttp://localhost:12345でHTTPヘッダをdebug.printするのは一回だけで
ブラウザの接続はCloseされてるから2回目以降は無反応になるって事さ。
フォームを閉じて再度開けばまた動く。
934デフォルトの名無しさん:2012/07/27(金) 17:17:26.70
TCPの仕組みとか
Winsockで何がやりたいのかとか
そういうとこが明確でないと議論しても無意味な希ガス
935デフォルトの名無しさん:2012/07/27(金) 17:20:05.37
VBしかできない奴はほんとつかえねえな
936デフォルトの名無しさん:2012/07/27(金) 17:23:03.39
>>931
MSDNライブラリ(Books Online)の「Winsock (Winsock) コントロールの使い方」にある「2 つ以上の接続要求の受け付け」では
Listen側のWinsockコントロールはCloseしてませんよ。

恥ずかしいなぁ。
937デフォルトの名無しさん:2012/07/27(金) 17:26:00.43
>>930
そういえばVB6のWinsockコントロールは最大接続数が設定できないけど
最大接続数はいくつになっているんだろうね?
938デフォルトの名無しさん:2012/07/27(金) 17:35:48.32
Winsockで接続時間にタイムアウトとかある?
朝ConnectしてCloseしなければ夜中まで接続を維持する?
939デフォルトの名無しさん:2012/07/27(金) 17:36:59.43
ないよ
940デフォルトの名無しさん:2012/07/27(金) 17:42:52.67
>>939
サンクスコ!
941デフォルトの名無しさん:2012/07/27(金) 17:49:59.86
鵜呑みにするな
942デフォルトの名無しさん:2012/07/27(金) 17:52:25.08
VB6のWinsockコントロールはライセンス上正式には頒布できないので製品を買いましょう。
http://www.grapecity.com/tools/products/secureinetsuite25/
943デフォルトの名無しさん:2012/07/27(金) 17:54:26.29
>>938
以前にXPで実験したことがありましたが、気が付くと切断されていたりするので
必要な都度、接続/データ授受/切断 を行った方がいいですよ。
944デフォルトの名無しさん:2012/07/27(金) 18:13:05.58
>>942
正式には頒布できないってどういうこと?

REDIST.TXT には

使用範囲を広げた再頒布可能コード:
標準再頒布可能コード:

の両方にあるけど
945デフォルトの名無しさん:2012/07/27(金) 18:17:00.71
それステマってやつ?
946デフォルトの名無しさん:2012/07/27(金) 18:18:45.48
これ見ると、VB6の標準Winsockよりはるかに使いやすいね。
http://dart.com/winsock-activex-tcp-control.aspx

タイムアウトを設定してブロッキングモードで使えば楽勝だろ。
Socket通信の詳細とか知らなくても使えそう。
947デフォルトの名無しさん:2012/07/27(金) 18:34:19.23
>>946
なぜListenメソッドがないの?
948デフォルトの名無しさん:2012/07/27(金) 18:42:08.56
>>947
受信側はコントロールが別なんだよ。
http://dart.com/winsock-activex-daemon-control.aspx
949デフォルトの名無しさん:2012/07/27(金) 18:59:35.06
>>948
受信側と言うか待ち受け側な。
950デフォルトの名無しさん:2012/07/27(金) 20:26:38.77
サーバーとクライアントって言葉使おうよ
951デフォルトの名無しさん:2012/07/27(金) 20:41:42.04
Listen = 鯖

じゃないんだけどね。
952デフォルトの名無しさん:2012/07/27(金) 20:44:53.31
一つのコントロールでListenもConnectもするWinsockコントロールより
Dartの商用TCPコントロールの方が構造が分かり安いな。
953デフォルトの名無しさん:2012/07/27(金) 21:09:04.77
スレの流れとは関係ないけど、うちの会社の新人研修の話。

とりあえず3ヶ月間研修して現場へ配置するのだけど
最初はまずC言語で研修。
そのうち、memallocとかrealloc関数にからんで、メモリの
スタック領域とヒープ領域の話になる。
動的な領域の確保、確保した領域をさらに広げる、フラグメントの生成とか。

これと構造体と関数と、制御文は当然として
こういう基本がわかってからJavaとかVBとかに進んでもらう。

ガベコレの方式も本一冊になるぐらいの分量があるけど
調べて理解してもらうにはこのC言語での研修が役に立つという風に
社内での共通認識になっているのだけど、もっと良い方法ある?
954デフォルトの名無しさん:2012/07/27(金) 21:14:18.10
>>953
頭でっかちになってる気がする。
詰め込みすぎてない?

当然の部分の話だけで済むような言語からはじめてはどうだろうか
955デフォルトの名無しさん:2012/07/27(金) 21:14:41.12
なぜこのスレで訊く
956デフォルトの名無しさん:2012/07/27(金) 21:45:47.35
>>953
メモリの動静は使用するOSによっても大きく変わるし
言語だけアカデミックに追及しても今の時代は無意味なんだけどね。
957デフォルトの名無しさん:2012/07/27(金) 21:48:09.40
C言語から始めるくらいならアセンブラから始めた方がイイと思うけどなぁ。
特にARMプロセッサのアセンブラとか、リトルエンディアンとビッグエンディアンの
どっちもアリとか末恐ろしい予測型条件分岐とか非常に興味深いよ。
958デフォルトの名無しさん:2012/07/27(金) 21:49:49.60
でも使う言語はVB6なんだろwww
959デフォルトの名無しさん:2012/07/27(金) 21:50:29.90
一番大切なのは人間教育だと思うけど。
土台のパーソナルが優秀でないとその上に根付く技術も色あせる。
特にコンピュータに携わる人間には変人が多いと言われるのだから
一般の人達とのコミュニケーション能力を育成する場が必要に思う。
960デフォルトの名無しさん:2012/07/27(金) 21:53:07.59
↑こんな奴が人間教育とかコミュとか言ってもな。
おまえ失敗作じゃん。
961デフォルトの名無しさん:2012/07/27(金) 21:53:40.23
人間性を身につけてしまったら転職してしまう
962デフォルトの名無しさん:2012/07/27(金) 21:54:36.54
ウチの新人、C#が得意ですという触れ込みだったが
実はC#でまったくコード組めない事が判明した。
今までどうやってたのか問い詰めたらVB.netをコンバーターにかけて
C#のソースに変換して提出していたらしい。
上司からは一番恥ずかしいのはそれに気づかなかった俺らだと言われた。
最近のC#コンバーターの出来があまりに良すぎて痛い目にあった俺らに
愛の手を・・・。
963デフォルトの名無しさん:2012/07/27(金) 21:56:17.98
>>962
確かに自分でC#で書いたコードよりカッコよかったりするよなwwww
964デフォルトの名無しさん:2012/07/27(金) 21:59:15.95
>>960
こんな奴って、どんな奴化も分かりもしないで良く言うわこの脳ナシがよーーーっ★
965デフォルトの名無しさん:2012/07/27(金) 22:02:47.85
>>964
お前は960を能ナシと呼べるほど分かってるのか
すげえな
966デフォルトの名無しさん:2012/07/27(金) 22:02:58.79
>>962
VB.net使えるならいいんでないの?
今組めなくてもすぐ順応しそうじゃない。



本当に問い詰めるなら、とくにWeb環境だと基盤も触らせないとだめだしな。
やること多すぎて破綻しそうや
967デフォルトの名無しさん:2012/07/27(金) 22:47:56.31
>>966
俺もそう思う。
アンマネージドコードでも書かない限り、
C#で出来る事はほぼVB.NETでも出来るし。

.NET黎明期はVB.NETで出来ない事もあったからC#にこだわる意味あったけど、
今なら別にどうだっていいじゃん。最終成果物をC#で提出してくれるなら。
968デフォルトの名無しさん:2012/07/27(金) 23:00:42.06
>>954
3ヶ月あれば10人中9人は理解してもらえる。

ガベコレうんぬんについては、その後の自分の勉強でやってもらうんだけど
ヒープから領域確保とか解放とかそういうイメージをもってもらっているのと
持っていないのではその後の学習に差が出る…という社内的な認識の話。
データ構造とかも初歩的な内容だけは研修で。

>>955
実は学生時代にVB6とかVBAでいろいろ作ってましたっていう子がいたんだけど
制御文はそこそこ使えても、データ型わかってなかったり、ましてや
クラスモジュール・標準モジュールの存在もわかってなくて
イベントプロシージャに全部ベタ書きするような子だった。
C言語で研修するうちに基本わかってきたなっていう感じだったけど
この研修なかったらどうなってただろうふと思って。

>>956
なんらかの言語を用いずに、データ構造とかメモリだとかそういう説明だけ
延々としても逆にわかりにくいかと。
今はオブジェクト指向言語隆盛の時代で、オブジェクト指向そのものを
解説した本は、たいていはJavaで説明してあって、Javaを教材に用いる
べきだという意見もあるんだけど、メモリの存在を意識できるかどうかという
点でC言語採用みたい。Cの案件少ないにも関わらず。

>>962
VB.NETでそこそこ組めるようだったら新人として立派じゃないですか。
C#にコンバータで変換というのが笑えるけど。
売り込みに必死だったんですね。
VB.NETいけるんならC#も変わらないですから、すぐに馴染むんじゃないでしょうか。

>>963
Javaのclassファイルを逆コンパイルしてもコードが洗練されている事がありますよ…
969デフォルトの名無しさん:2012/07/28(土) 15:57:20.67
.NETやJavaはバイナリといっても
実行時型情報などのために
かなり情報を残してるからな。
970デフォルトの名無しさん:2012/07/28(土) 22:16:00.99
ピクチャボックスにグラフを描いて
マウスを乗せるとそのピクチャの上の子ピクチャをVisibleにして
その位置のグラフのデータを表示するというTooltipTextのようなことをしているのだけど
マウスがピクチャに乗ってない時は子ピクチャが邪魔なので消したい
タイマーで消すしかない?
971デフォルトの名無しさん:2012/07/28(土) 22:35:00.61
javascriptのonmouseoutみたいなイベントがVBにあればよかったのにね
972デフォルトの名無しさん:2012/07/28(土) 22:47:30.62
ぶっちゃけタイマ使った方が簡単だ
973デフォルトの名無しさん:2012/07/28(土) 23:28:27.31
カーソルが外れてもほんの少しの時間は表示させておきたいのだろうからonmouseoutではダメさな。
974デフォルトの名無しさん:2012/07/28(土) 23:55:00.61
そんなにタイマーを毛嫌いしなくていいと思う。
俺はタイマー好きだよ
975デフォルトの名無しさん:2012/07/29(日) 00:01:47.93
標準タイマーは500ms以下になると精度がボロボロなのでマルチメディアタイマーを使うのが普通だよな。
976デフォルトの名無しさん:2012/07/29(日) 00:02:58.62
>>974
お前の人生のタイマーもTime Out間近だね。チーン!
977デフォルトの名無しさん:2012/07/29(日) 00:23:51.90
>>975
どういう意味で精度と言ってるのか知らないが、いかなる意味でもポップアップの
制御ごときに精度なんて必用がない。
978デフォルトの名無しさん:2012/07/29(日) 00:48:29.12
>>977
必用はないが必要なんだろうな。
979デフォルトの名無しさん:2012/07/29(日) 12:50:34.97
タイマーの設定値はディレイであって周期ではないよ
勿論ここの人は知ってると思うけど
980デフォルトの名無しさん:2012/07/29(日) 12:55:48.53
何だよディレイってw
自信がないからほのめかすような言い方しかできないんだろうが
自信がないのなら最初から黙っているべきだ。
981デフォルトの名無しさん:2012/07/29(日) 13:09:15.12
ディレイって格ゲーでしか使わないワードだと思ってた
982デフォルトの名無しさん:2012/07/29(日) 13:57:45.44
ディレイ遅延?
983デフォルトの名無しさん:2012/07/29(日) 14:08:37.62
つまり1秒感覚で設定していても
何か理由でイベント発生が遅れると、その送れた時点から
1秒後にイベントが発生するということか
984デフォルトの名無しさん:2012/07/29(日) 15:39:44.00
だってIntervalってプロパティじゃん
どっからディレイって言葉がでてきたのか
985デフォルトの名無しさん:2012/07/29(日) 19:20:15.45
>>984
delayじゃ1回きりで終わっちゃいそうな印象を与えるから?
delayという言葉を持ち出したのは、
実際はタイマーイベント処理時間分遅延して行くよって事なんじゃないの?
知らないけど。

あとアニメーション効果をもつコントロールなんかだとdelayプロパティあるね。
986デフォルトの名無しさん:2012/07/29(日) 19:54:01.06
ツンdelay
987デフォルトの名無しさん:2012/07/29(日) 20:07:05.16
知らないなら黙っててください
988デフォルトの名無しさん:2012/07/29(日) 20:37:53.04
大学一年生のプログラミング初心者です。超初心者です・・・
ubuutuを使用しています。
テキストエディターを使い自分で一からジャンケンプログラムを組んでいます。
が、何度試してもエラーが起きてしまいます。
改善点を教えてくれませんか?
#include <stdio.h>
#include <stdlib.h>
int main()
{
int n;
int player; /**/
int computer; /**/
srand(0); /**/
do
{
/**/
printf("あなたの手は? (グー:1 チョキ:2 パー:3) > ");
scanf("%d", &player);
/**/


989デフォルトの名無しさん:2012/07/29(日) 20:38:42.84
続き

computer =rand() % 3 + 1;
/**/
if(computer == player){
printf("あいこです\n");
}
else if(player == 1 && computer == 2){
printf("プレイヤーの勝ちです\n");
}
else if(player == 2 && computer == 3){
printf("プレイヤーの勝ちです\n");
}
else if(player == 3 && computer == 1){
printf("プレイヤーの勝ちです\n");
}
else{
printf("コンピュータの勝ちです\n");
}
/**/
printf("このまま続けますか? 続ける場合は9,続けない場合は 0 を入力してください>");
scanf("%d",&n);
/**/
}while(n != 0);
return 0);
}
990デフォルトの名無しさん:2012/07/29(日) 20:43:04.74
掲示板の使い方まで初心者ではいろいろ困るよねw
991デフォルトの名無しさん:2012/07/29(日) 20:44:13.86
>>990

すいません・・・
992デフォルトの名無しさん:2012/07/29(日) 21:05:01.24
ネタ投稿か
993デフォルトの名無しさん:2012/07/30(月) 04:26:11.81
これはひどい
994デフォルトの名無しさん:2012/07/30(月) 08:47:45.35
>>991
すいません、じゃなく、すみません、だろ?
専門学校で謝り方も習って来い。
995デフォルトの名無しさん:2012/07/30(月) 09:46:27.99
すみません。
return (0);
996デフォルトの名無しさん:2012/07/30(月) 09:49:55.72
while(0 = 0);
return 0);

これが今のお前の姿だよ。
997デフォルトの名無しさん:2012/07/30(月) 09:51:08.56
さすがVB6ユーザー。こう言いたかったのでは?

while(0 == 0);
return 0);
998デフォルトの名無しさん:2012/07/30(月) 09:51:47.40
>>997
m(_ _)m
999デフォルトの名無しさん:2012/07/30(月) 09:53:16.62

 (00)
 ( 0 )
1000デフォルトの名無しさん:2012/07/30(月) 09:54:47.14
1000 なら

  (0=0)
   ( 0 )

サル


10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。