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

このエントリーをはてなブックマークに追加
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/

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

※「まず自分で調べる」クセを身につけよう。
2デフォルトの名無しさん:2013/09/01(日) 16:30:17.20
もう新規で使ってる会社とか無いんだろうけど、保守的な仕事とかあるだろうから立ててみたよ
次期Windowsで動けばまた数年使われるんだろうな
3デフォルトの名無しさん:2013/09/01(日) 16:54:10.66
2年くらいまえ、うちのベテランがVB6なら安くなりますよって客にいって
新規の案件でVB6を使おうとしてたのを目撃した。
4デフォルトの名無しさん:2013/09/01(日) 17:01:54.80
使い捨てのちょっとしたソフトならVB6使いたくなるという気もわからんではないが
5デフォルトの名無しさん:2013/09/01(日) 20:59:17.44
ttp://msdn.microsoft.com/ja-JP/vstudio/cc707268
Windows7までの話だけど、大体こんな感じか。
6デフォルトの名無しさん:2013/09/02(月) 09:20:33.33
フレームワークとミドルの使用は一切禁止というクライアントがいる
.netはもとよりJavaもダメ。斬新な開発環境はすべてフレームワーク前提だし
C++を使って開発かよ?と思ったらなぜかVB6はおk
VB6はフレームワークではなくランタイムライブラリなのだとか
思わぬところでVB6の出番
確かに短納期で抵工数でフレームワークなしというクライアントの条件は満たしたが
いまひとつスッキリしないのはなぜだろう?
7デフォルトの名無しさん:2013/09/02(月) 10:43:20.92
setup.exeだけがあればインストールができる、という事は配布側としても良い点かも
8デフォルトの名無しさん:2013/09/02(月) 13:18:51.62
.netを使うリリースの場合は動作環境としてWindowsバージョンを制限することで対応している
例えば.net Framework 3.5で開発したものを動作条件Wdows 7以上としてリリースする。
この場合、クライアントからWindows XPでも動くようにと言われるとダメだが
そこは伝家の宝刀

 「Windows XPは来年サポートが終了した直後、凶悪で危険なソフトに豹変します!」

と、マイクロソフト社のマスコミを使った搖動作戦を利用させてもらうw
 
 
9デフォルトの名無しさん:2013/09/02(月) 13:20:27.80
OS初期インストール済みの.netってアンインストールできなかったっけ?
10デフォルトの名無しさん:2013/09/02(月) 13:34:50.91
>>3
気合入れて金と時間を費やして
「やっぱこのシステム使いにくいから止めよう」
となるよりはマシかもしれない
11デフォルトの名無しさん:2013/09/02(月) 20:20:48.23
あげ
12デフォルトの名無しさん:2013/09/02(月) 20:32:11.93
話が無いなら無理にageなくても
サーバーが完全に回復すればスレも回復するよ
13デフォルトの名無しさん:2013/09/03(火) 09:39:19.78
VB6ってx64環境でもIDEをインストできたんだね。知らなかった。
14デフォルトの名無しさん:2013/09/05(木) 11:10:30.75
アンマネージド版VBのテスト版が米国でリリースされたけど
VB6との互換性はどうなんだろう?
15デフォルトの名無しさん:2013/09/05(木) 13:19:53.27
おいおいw
16デフォルトの名無しさん:2013/09/05(木) 23:22:19.63
>>14
Twipsが使えるから座標系の互換性は高いかもね
演算の結合規則が一部変わってるので注意が必要かも
VB6では、えっ!これって左結合でないの?ってシチュエーションがいくつかあったけど
アンマネージド版VBではC言語的仕様に変わったみたい
17デフォルトの名無しさん:2013/09/05(木) 23:25:28.86
   17 \ 4 + 8 = ?


これって新VBではどうなる?
18デフォルトの名無しさん:2013/09/05(木) 23:32:24.04
>>14
何ヶ月遅れのエープリルフールですか
19デフォルトの名無しさん:2013/09/06(金) 09:40:19.59
サンプルコードを見る限りTwipsが使われているんだが 何が遅れたエイプリルフールなのかっつー
20デフォルトの名無しさん:2013/09/06(金) 09:41:30.25
Windows 8.1でVB6ランタイムのサポートが終了したと愕然としていたら
なんとVB6が新しい仕様で帰ってキタというわけか
納得したわん!
21デフォルトの名無しさん:2013/09/06(金) 15:02:28.68
とりあえずその新VBとやらの詳細URLプリーズ
22デフォルトの名無しさん:2013/09/06(金) 15:04:27.53
プレミアム会員なら見れるだろ?それとも雑魚なの?
23デフォルトの名無しさん:2013/09/06(金) 15:32:49.57
くだらん煽りはいいからURLはよ
24デフォルトの名無しさん:2013/09/06(金) 15:44:11.46
そんな律儀な人がいるものか・・・
といいつつ金持ち喧嘩せずということに期待すればよし
25デフォルトの名無しさん:2013/09/07(土) 23:56:19.83
新しいVB出るのか
今までVBで作ったツールが実行できないと生活できそうにないまでになってるのだけど
その新VBに移行すれば当分大丈夫かね
26デフォルトの名無しさん:2013/09/08(日) 00:01:21.29
>>25
568行の自作コードを移行したところではLsetのところで警告が一か所出ただけでビルドして動いたよ
Option Explicitを付けてコーディングしてたなら互換性はかなり高いと思われ
Twips単位系もユーザー定義のScale Modeも使える
インタフェース継承だけでなく実装継承も可能になった
27デフォルトの名無しさん:2013/09/08(日) 00:30:02.26
いい加減つまらないから。
そんな話どこのニュースサイトにも出てないぞ
28デフォルトの名無しさん:2013/09/08(日) 09:04:07.63
>>26
へーそれでマルチスレッドはどーなの?
29デフォルトの名無しさん:2013/09/08(日) 15:53:21.17
意外にランクの低いMSDN契約しかしてないのねぇ
30デフォルトの名無しさん:2013/09/08(日) 16:40:27.33
MSDNサブスクリプションは、キーの取得やダウンロードにはもちろん契約が必要だが、
ダウンロード可能な製品の一覧は誰でも閲覧できるんですよw

馬鹿じゃなかろうか
31デフォルトの名無しさん:2013/09/08(日) 17:01:32.53
英語圏プログラマが大量に集まるフォーラムですら何の音沙汰もない
32デフォルトの名無しさん:2013/09/08(日) 17:07:51.61
ホントならURL出せば終わりの話だろ。
そこにアクセスする権限があるかどうかは別問題
それすら出さないのは理由があるのか?
33デフォルトの名無しさん:2013/09/09(月) 09:37:50.09
MSDN関係ないだろ?M<SDNに入っていればプレミアム契約の恩恵が得られるとでも?
顔洗って出直してこいよ。
34デフォルトの名無しさん:2013/09/09(月) 12:38:35.71
妄想倶楽部のプレミアム会員か
35デフォルトの名無しさん:2013/09/09(月) 15:33:25.22
.net推進派としては許せん暴挙
妄想と申そう
36デフォルトの名無しさん:2013/09/09(月) 15:57:18.63
VB Classicか。VB Legacyと来るかと思ったがw
37デフォルトの名無しさん:2013/09/09(月) 18:56:28.83
>>36
「Class」というゴロが欲しかったんだと思うな
38デフォルトの名無しさん:2013/09/09(月) 19:00:55.45
VB6はXP以降にIDEをインストするとエディタの文字の上にウィンドウが重なると
上のウインドウが消えると重なった部分の文字が消えたり崩れたりしていた。
消えた文字の上を何かのウインドウを動かして窓を拭くように動かすと消えた文字が再描画される。
これがVB Classicでは起こらなくなっただけでも使う価値はあるでしょう。
39デフォルトの名無しさん:2013/09/09(月) 19:50:55.85
>>38
それはテーマの影響だよ
テーマをWindows クラッシックに変えるか、視覚効果をパフォーマンス優先に設定すれば出ない
40デフォルトの名無しさん:2013/09/09(月) 20:07:24.53
41デフォルトの名無しさん:2013/09/09(月) 20:47:50.25
長年の夢が実現したのか
42デフォルトの名無しさん:2013/09/10(火) 12:13:51.27
コントロールとツールボックスをドラッグしたときに
激重になるのをなんとかしてほしい
43デフォルトの名無しさん:2013/09/10(火) 12:44:44.12
ならないけど?
44デフォルトの名無しさん:2013/09/10(火) 13:40:19.17
コントロール…チェックボックスでもなんでもいいけど…を、コピーして貼り付けると配列にできるよね。
アレを10回繰り返して、縦に (0)〜(9) って配列で並んだコントロールを作りますわな。

これを全部選択してコピー、貼り付けると、(10)〜(19) って配列のコントロールができるわけだけど、
並びもCaption も、コピー元と同じ並びなのに、なぜか配列が (19)〜(10) になっていて、いちいち場所とCaprionを変えないといかんのだが
これなんぞ
45デフォルトの名無しさん:2013/09/10(火) 13:48:26.43
どうでもいいだろそんなの
46デフォルトの名無しさん:2013/09/10(火) 13:58:50.53
配列の添字がどーでもいいってんなら、チェックボックスとかどーやって参照するん?
47デフォルトの名無しさん:2013/09/10(火) 14:10:39.27
数千個もあるわけじゃあるまいし、コントロールの作成方法に気を付ければいいだけだろ
48デフォルトの名無しさん:2013/09/10(火) 15:02:40.91
>>44
その仕様はVB6IDEの仕様じゃなくてWindowsの仕様や!
複数選択するとき選択していった順番になるんや!
よう覚えとき!
4944:2013/09/10(火) 15:26:23.32
数えたら144個使ってた。
うち24個は元なので、残り120個…めどい。

>>48
今試しに、上から順に選んだ場合と、下から順に選んだ場合をやってみたが、どっちも下から昇順になった。
下から昇順ってのが基本なのかな?
50デフォルトの名無しさん:2013/09/10(火) 16:07:09.11
もうForでLoadしなよ・・・
51デフォルトの名無しさん:2013/09/10(火) 16:48:22.55
コマンドボタンを
(0) (1) (2)
(3) (4) (5)
(6) (7) (8)
を色々な選択の仕方試してコピーして貼り付けたが
(9) (10) (11)
(12) (13) (14)
(15) (16) (17)
にしかならなかったぞ
左上から順番にナンバリングされたぞ
5244:2013/09/10(火) 17:04:39.64
>>51
うーん? と思って何もないところでやってみた。 まじだ orz

とりあえず一番最初の手順と同じ、フレームの中に配したそれらをフレームごとコピーしたら、なった。
フレームか、フレームが悪いんか…
53デフォルトの名無しさん:2013/09/10(火) 17:13:03.94
普通100個も同じコントロール配列あったら、デザイン時じゃなくて
実行時にプログラムでコントロール生成して配置するもんだ
54デフォルトの名無しさん:2013/09/10(火) 18:20:37.26
グラフィカルデザインの限界
55デフォルトの名無しさん:2013/09/10(火) 18:35:21.32
>>52
今時本当にVB6の開発環境をスタンバらせている奴がいるのね。びっくりしたなモーw
56デフォルトの名無しさん:2013/09/10(火) 18:42:28.69
MSDNのサブスクリプションでダウンロードできるうちは終わらない
57デフォルトの名無しさん:2013/09/10(火) 18:46:56.74
俺も仮想PCにVB6 SP6とセキュリティパッチ導入し、ライセンス所持するすべてのアドインとOCX導入済みの仮想ディスクがある
58デフォルトの名無しさん:2013/09/11(水) 04:32:42.50
過去にVB6でシステム組んでるところなら、保守用に環境あるとこは多いだろ
59デフォルトの名無しさん:2013/09/11(水) 09:31:48.28
マジレスリアル
60デフォルトの名無しさん:2013/09/17(火) 23:31:04.83
新幹線とかの座席を指定したり変更したりするプログラムをVBで作りたいんだがプログラムのソースを教えてくれ!
61デフォルトの名無しさん:2013/09/18(水) 00:28:52.84
>>60
今のJR東○の座席予約発券オンラインリアルタイムシステムは俺がVB6で作った
OSはWindows NTだがプリエンティブな環境としては十分だ
未だにVB6のサポートを継続しているのはそのお蔭かもしれない
62デフォルトの名無しさん:2013/09/19(木) 18:55:33.17
>>60
SQLを勉強しろ
63デフォルトの名無しさん:2013/09/19(木) 18:55:58.08
Jetエンジン
64デフォルトの名無しさん:2013/09/19(木) 19:10:57.50
テスト中は覚えやすい適当なパスワードでもいいけど、本番は絶対バレないのにしろよ。
パスワードがpassだったら誰でもハッキングできるやんけ。
65デフォルトの名無しさん:2013/09/19(木) 19:35:07.06
えー、SQL Serverインスコしなきゃいけないの?(汗
66デフォルトの名無しさん:2013/09/19(木) 19:36:49.77
>>63
MDBはネットで共有するとインデックスだけでなくテーブルそれ自体が壊れるのが何とも・・・
67デフォルトの名無しさん:2013/09/19(木) 19:46:21.32
データベースは無料のヤツでOK
68デフォルトの名無しさん:2013/09/19(木) 19:57:46.59
実際、MDBが壊れるという理由で必要もないのにSQL Server Expressに移行した人が多いのでは?
だとすると実行性能が極端に低下したんじゃないかな?
Accessは速度面では暴速だったからね
69デフォルトの名無しさん:2013/09/19(木) 20:23:41.29
ネットワークでMDB共有するような環境からSQL Serverに移行して極端に速度低下?
サーバによっぽどひどいマシン使ってるか、つくりがおかしいとしか思えん
70デフォルトの名無しさん:2013/09/19(木) 20:29:28.31
>>69
郵便番号データベースを作成して見るとよくわかるよ
レコード数が膨大になるシステムであるほど差が分かりやすい
SQL Serverが遅いというよりむしろAccessが異常に速いだけ

無論、この話ではインデックスが効かないようなSQL文を平気で書くアホは除外している。
例えば日付範囲の評価にConvert文を使う奴とか。
71デフォルトの名無しさん:2013/09/19(木) 20:31:29.99
通信する分だけ遅くなるってオチじゃないの
72デフォルトの名無しさん:2013/09/19(木) 20:31:46.64
>サーバによっぽどひどいマシン使ってるか、つくりがおかしいとしか思えん

Accessでも遅くなるようなコードしか書けないロースキルな人だとしたら
かえってSQLServerの方が速く感じるかもしれん
73デフォルトの名無しさん:2013/09/19(木) 20:33:15.17
共有しているファイルへのアクセス(MDB)とサービスへの問い合わせ/応答(SQL)とでは
速度差が100倍あってもおかしくなかろう
74デフォルトの名無しさん:2013/09/19(木) 20:45:17.64
MariaDBおすすめ
75デフォルトの名無しさん:2013/09/19(木) 20:47:36.57
ADO
DAO
ODBC

イミフ
76デフォルトの名無しさん:2013/09/19(木) 20:48:35.21
>>74
MySQLではダメなの?
77デフォルトの名無しさん:2013/09/19(木) 20:49:15.87
>>75
縦読み乙w
78デフォルトの名無しさん:2013/09/19(木) 20:49:20.25
Oracleはダメ
79デフォルトの名無しさん:2013/09/19(木) 20:50:53.40
JDBC
80デフォルトの名無しさん:2013/09/19(木) 20:51:47.44
RDO
81デフォルトの名無しさん:2013/09/19(木) 20:51:54.96
MySQLにしてもMariaDBにしてもSQL Serverより目に見えて速くはならないよ
小規模ザイズのレコードセットに単純なクエリーなら何を使っても大差ない
それを言ったらBtrieve最強って話にもなってしまう
82デフォルトの名無しさん:2013/09/19(木) 20:57:43.75
SQLite最強
83デフォルトの名無しさん:2013/09/19(木) 20:58:17.45
そもそもMySQLもMariaDBもどれもVB6からアクセスできないんじゃないの
84デフォルトの名無しさん:2013/09/19(木) 21:24:55.38
ODBCも知らん雑魚
85デフォルトの名無しさん:2013/09/19(木) 21:26:07.52
MySQL :: MySQL 5.1 リファレンスマニュアル :: 24.1 MySQL Connector/ODBC
http://dev.mysql.com/doc/refman/5.1/ja/myodbc-connector.html
86デフォルトの名無しさん:2013/09/19(木) 21:26:48.49
ここって初心者スレだっけ?あんまりだわ・・・
87デフォルトの名無しさん:2013/09/19(木) 21:32:18.67
SQLiteってDLLからAPI使うんじゃなくてODBCを使うもんなのか
88デフォルトの名無しさん:2013/09/19(木) 21:33:14.13
またまたすごいのがキタわん!
89デフォルトの名無しさん:2013/09/19(木) 21:41:35.92
楽しいスレですね
90デフォルトの名無しさん:2013/09/19(木) 23:15:25.78
<現 行> → <新>
・サーバOS:Windows server 2003 → Windows server 2008R2(64bit)
・CPU:Xeon X 5260 3.33GHz → Xeon E5-2403 1.80GHz
・メモリ:4GB → 32GB
・データベース:SQL server 2005 → SQL server 2008R2(64bit)
上記のようにサーバを入れ替えたところ、VB6.0で開発したプログラムの
処理時間が倍増しました。
処理は、CSVを取り込んで、SQL serverの特定テーブルを更新します。
何が原因でしょうか???
処理速度アップに何か試してみた方がいいことありますでしょうか?
よろしくお願いします。
91デフォルトの名無しさん:2013/09/19(木) 23:45:03.77
よお無能
92デフォルトの名無しさん:2013/09/19(木) 23:49:19.54
CPUのスペックが下がってるじゃん
93デフォルトの名無しさん:2013/09/19(木) 23:54:09.94
GitHubにVB6製のアプリ公開してもいいのかね
94デフォルトの名無しさん:2013/09/20(金) 00:00:21.68
>>93
文字コードに問題あるかも
95デフォルトの名無しさん:2013/09/20(金) 00:05:56.98
>>94
バイナリですら置けるのに関係ねーだろw
96デフォルトの名無しさん:2013/09/20(金) 00:24:15.70
SourceForgeに公開するんだ!
97デフォルトの名無しさん:2013/09/20(金) 09:23:07.43
>>90
まさかとは思うけど、SQL Server 2005の時と同じバイナリで2008R2にアクセスしてないよね?
もしADOを使っているなら、ActiveX DBのタイプライブラリとしてに何を登録している?
98デフォルトの名無しさん:2013/09/20(金) 12:20:36.37
スレチは全員帰れ!
99デフォルトの名無しさん:2013/09/21(土) 11:18:22.06
>>92
旧サーバは5年前に導入、新サーバは先月導入で、新しいCPUほど
1クロックあたりの効率も上がっているので、遅くならない
はずというのが、うちの会社の本部の見解だったのですが・・・

>>97
MicroSoft ActiveX Data Objects 2.8Library



>>97
100デフォルトの名無しさん:2013/09/21(土) 13:23:38.22
そのMicrosoft ActiveX Data Objects 2.8 Libraryってのが、64ビット版かどうか調べよ。
それから、64ビットが単純に32ビットの二倍以上速くなる訳じゃない。本部の責任者の首を切れ。
101デフォルトの名無しさん:2013/09/21(土) 13:44:20.78
使ってるすべてのライブラリとプログラムが64ビット版か調べなさい
102デフォルトの名無しさん:2013/09/21(土) 17:34:28.02
>MicroSoft ActiveX Data Objects 2.8Library

なぜ6.0ではないの?
103デフォルトの名無しさん:2013/09/21(土) 17:42:42.51
>>90
アプリ以前にLANが遅いとか
104デフォルトの名無しさん:2013/09/22(日) 01:10:45.52
>>102
プログラムが5年前のもので、開発環境がXPだったからかもしれません。
6.1に上げてみたものの、スピードは変わりませんでした。
現在の開発環境(Windows7 64bit Corei5 3.1Ghz)では、DBへの接続文字列を
「SQLOLEDB.1」→「SQLNCLI10.1」と変更するとスピードアップしたのですが
新サーバではやはりダメでした。

>>103
プログラムとデータベースは同一サーバ内にいるので、LANは関係ないかと・・・
105デフォルトの名無しさん:2013/09/22(日) 03:07:13.24
カワイソス(´;ω;`)ブワッ
106デフォルトの名無しさん:2013/09/22(日) 19:16:06.84
そもそも2005のクライアントって2008R2への接続保証してたか?
107デフォルトの名無しさん:2013/09/23(月) 15:59:09.44
>>106
2012まで問題無く接続できてるよ。
保証も何も2008のSQL Server Management Studio自体が2005どころか2000の管理もサポートしてる。
構造はOLE DBへの参照設定みたいなものだからね。OSならわかるがSQLのバージョンに依存する理由はほとんどない。
108デフォルトの名無しさん:2013/09/23(月) 18:35:43.79
>>90
インデックス使い過ぎとかじゃないの?
109デフォルトの名無しさん:2013/09/23(月) 21:50:08.90
>>107
動くのはしってるが、サポートはしてないと思うんだが
110デフォルトの名無しさん:2013/09/24(火) 00:00:50.19
開発環境:OS Windows7 64bit/CPU Corei5 3.1Ghz/メモリ8GB
サーバー:OS Windows server 2008R2 64bit/CPU Xeon E5-2403 1.80GHz /メモリ32GB
で、開発環境の方が倍以上処理速度が速いんですよねえ。
何でだろう???
111デフォルトの名無しさん:2013/09/24(火) 01:18:24.58
>>110
cpu
112デフォルトの名無しさん:2013/09/24(火) 09:26:26.64
>>109
サポートはされているよ
113デフォルトの名無しさん:2013/09/24(火) 09:34:22.77
>>110
SQL 2005のDBをどうやってSQL Server 2008のDBにコンバートしたの?
2005で吐いたDBスクリプトを2008へ持って行ってCreate DBしてみた?
まさか2005のまんまアタッチして、そのまま使ってたりしてないよね?
114デフォルトの名無しさん:2013/09/24(火) 15:06:40.60
>>110
まずネットワーク疑えよ
今時のCPUもディスクも十分早いから、ちょっとした処理なら体感できる差にはならんだろ
どっかでTCP/IP有効にしたら同一マシンでも早くなったっての見た気がするぞ
115デフォルトの名無しさん:2013/09/24(火) 17:41:52.69
いやいや、まずプロファイリングしろよ
116プロファイルしてみた:2013/09/24(火) 17:45:28.22
処理速度が遅い原因はCPU、もしくはHDD、そうでなければDBエンジンかアプリの可能性が高いがそれ以外の可能性もある。
117デフォルトの名無しさん:2013/09/24(火) 17:49:56.21
同じ経験が俺にもあるよ。どうやって回避したか教えようか?
118デフォルトの名無しさん:2013/09/24(火) 17:51:44.13
C#で作り直せば速くなる
119デフォルトの名無しさん:2013/09/24(火) 20:15:37.11
>>113
まさかのそのままアタッチしました。
というか、うちの会社では、皆その方法でやってるので、
そこに疑問は持ちませんでした。

>>114
データベースとプログラムが同一サーバ内にいるのに、
ネットワークが関係あるのですか?
120デフォルトの名無しさん:2013/09/24(火) 21:24:31.22
>>119
同一マシンでも通信はしてる
何で通信してるかによって速度差が出る可能性はある
グダグダ言う前にとりあえず試してみろ
121デフォルトの名無しさん:2013/09/24(火) 21:30:55.46
ちょっと意味がわかりませんね
122デフォルトの名無しさん:2013/09/24(火) 21:42:47.74
>>119
>まさかのそのままアタッチしました。

ゴルァ!何やっとるかぁ!!!

2008でDB作り直しなよ
SQL Server Management Studio 2008で
おそらく今はこんな感じになってるのだろう?
http://imageshack.us/a/img585/4663/tw5k.png

これではメチャメチャ性能低下するよ
123デフォルトの名無しさん:2013/09/24(火) 22:26:51.74
>>122
DBの作り直し、やってみます。
ちなみに、SQL Server Management Studio 2008で見たところ、
その他のいくつかの項目がTrueになっている以外、ほぼ同じ状態でした。

>>120
一つ気になったのが、Windows server 2003の旧サーバから新サーバへ
ファイルコピーをすると、尋常ではなく遅かったことです。
この辺も関係ありそうでしょうか?
124デフォルトの名無しさん:2013/09/24(火) 22:35:21.51
>>123
デバイスマネージャーでLANアダプタの詳細設定でオートネゴシエーションではなく100BASE固定にしてみなよ
最近よくあるんだけどLANアダプタとHUBの相性が悪くてジャムが起こりまくってLANが糞詰まり状態になる
これでも治らなかったらHUBを色々買えてみる事だね。ギガビット系が問題になることが多いので古いタイプのHUBの方がいい。
鉄板はアライドテレシスのFSシリーズ
http://www.allied-telesis.co.jp/products/list/switch/fs700xl_txv3/catalog.html

HUB側のスイッチでネゴシエーションや速度を設定できる最強HUB
125デフォルトの名無しさん:2013/09/25(水) 01:11:33.84
hdd bench
126デフォルトの名無しさん:2013/09/25(水) 01:52:48.26
>>122

SQL Server Management Studio 2008で互換性レベルをSQL2008に変更した
だけでも、処理時間が2/3になりました。

ちなみに、VB6.0のプログラムをVB.NETにアップグレードし、64bitでビルド
したプログラムを実行させても、VB6.0とさほど変わりませんでした。
倍ぐらい速くなるのかと思ったのですが、こんなものでしょうか?
127デフォルトの名無しさん:2013/09/25(水) 03:37:17.25
>>126
どこがネックで遅いのか分からんのに何とも言えんわ
128デフォルトの名無しさん:2013/09/25(水) 07:47:18.66
>>127
本部の人間から、VB6.0からVB.NETへ移行すれば、マルチスレッド対応が
可能となり、64bit環境下での処理速度が劇的に速くなると聞いたので。
129デフォルトの名無しさん:2013/09/25(水) 08:10:37.87
>>128
君の技術力がなさすぎなんだよ
130デフォルトの名無しさん:2013/09/25(水) 10:17:36.90
>>128
マルチスレッドと64bitはSQL Serverのクエリー速度とほとんど相関しないよ
まあ、ほとんどの処理を呼び出し側のプログラムで行いSQLへは単純クエリーとかなら
全く影響しないと言えば嘘になるけど、その場合は作り方の問題であって・・・

明らかに体感的な速度が低下したと感じる場合、実際には2倍以上の遅延が出ているはず
その原因を探るには、単純ファイルコピーで遅かった原因をつきとめてクリアすることから始めるべき
SQLの性能がいくら向上しても、遅延の発生しているLAN経由では10年前の性能に逆戻りだよ
131デフォルトの名無しさん:2013/09/25(水) 11:05:26.69
>>126
つか、なんで計測しないんだよ。
イライラするわ。
132デフォルトの名無しさん:2013/09/25(水) 14:50:39.12
スレ違いみたいだけど、VB6からアップグレードウィザード通してVB.NETに移行しただけでマルチスレッド対応になるの?
133デフォルトの名無しさん:2013/09/25(水) 14:56:31.16
>>132
なるわけねーだろ?察しろよアホが
134デフォルトの名無しさん:2013/09/25(水) 22:20:34.11
>>133
結局ならないのか。
本部の人が対処法はこれしかないみたいに言ってきたので、頑張って
移行したのにくたびれもうけだったなあ。

>>130
再度お聞きするのですが、VB6プログラムとデータベースが同一サーバー
内で同居している、いわゆる「localhost」の環境でも、LANのスピードと
SQL serverの処理速度に相関関係があるということでしょうか?
なかなか理解が出来ないもので・・・
135デフォルトの名無しさん:2013/09/25(水) 23:29:48.14
んなこたーない
136デフォルトの名無しさん:2013/09/25(水) 23:56:13.27
>>134
共有メモリを有効にしていればLANは一切使用しないけど
local設定だとLANに出るよ
LANケーブルを抜いてみなよ
TCP/IP自体が無効になるだろう?
137デフォルトの名無しさん:2013/09/26(木) 09:29:28.08
初心者じみた質問で申し訳ありません
Windows7でVB6のプログラムをコンパイルしようとしても〜.exeの作成というメニューが灰色のままでコンパイルできません
以前はコンパイルできたはずなのですが…
現象、原因、復旧方法をご存じの方がいましたらご教授の程お願いします
138デフォルトの名無しさん:2013/09/26(木) 11:01:37.94
>>134
何度も言うようだが、プロファイラがあればそれで、なければ測定コードを埋め込んでどの部分が
どれだけ遅くなったのかまずはっきりさせろ。

そして遅くなった部分だけを切り出して、別の手段で(例えば別言語で同じことをやってみるなど)
同じ事をやってみたりして、原因を探れ。

データベースアクセス関連のみが遅いということであっても、
・コネクト
・検索
・更新
・コミット
それそれの時間を計測し、どこが遅いのかを絞れ。
139デフォルトの名無しさん:2013/09/26(木) 11:35:16.43
>>138
オープンとクローズはしないのかい?
140デフォルトの名無しさん:2013/09/26(木) 11:36:22.96
>>137
VB6を管理者モードで起動している?
141デフォルトの名無しさん:2013/09/26(木) 12:22:15.64
むしろ非管理者で起動できるの?
142デフォルトの名無しさん:2013/09/26(木) 12:26:04.24
>>141
起動できるよ 強引にやれば
143デフォルトの名無しさん:2013/09/26(木) 13:21:29.90
>>140
管理者として起動しています、アクセス権限もフルコントロール状態です
ちなみにメニューのファイル-コンパイル(〜.exeを作成)の所が灰色になるだけでそれ以外の動作は正常に動きます
144デフォルトの名無しさん:2013/09/26(木) 14:18:27.37
新規にプロジェクトを作成しても同じ?
145デフォルトの名無しさん:2013/09/26(木) 15:02:13.29
>>144
はい
このままスレを消費させるのも気が引けるので
以前はコンパイルできていたのを勘違いじゃないと信じてシステム復元ポイントを幾つか遡って対応してみます
146デフォルトの名無しさん:2013/09/26(木) 18:04:26.51
ライセンスが消滅してビルド制限がかかっているみたいだね
もしかしてWindowsが海賊版だったりしてない?
147デフォルトの名無しさん:2013/09/27(金) 01:00:11.02
Dim a as Variant
a = "0"
If a = 0 Then

Trueにならないようにする一番シンプルな方法を教えてください
148デフォルトの名無しさん:2013/09/27(金) 01:10:09.85
それ以前に何がしたいんだ。
問題設定が間違ってる問題を解いても無駄
149デフォルトの名無しさん:2013/09/27(金) 05:03:16.63
VarType関数で
150デフォルトの名無しさん:2013/09/27(金) 08:21:22.65
IDE環境でステップ実行とかの停止中に、
コードウインドウ上の変数にマウスカーソルを乗せると、変数の内容をポップアップで表示するでしょ
久しぶりにVB6を使ってみたらそれが出なくなってる
XP、VB6ですがGoogle日本語入力が原因でしょうか
漢字モード切り替えをポップアップで教えてくれるでしょ
その機能とバッティングしてるんじゃないのか
私はこれからオナニーで忙しいので誰か調べといて
151デフォルトの名無しさん:2013/09/27(金) 10:47:23.53
I


X




152デフォルトの名無しさん:2013/09/27(金) 18:22:13.14
>>147

Dim a as Variant
a = "1"
If a = 0 Then
153デフォルトの名無しさん:2013/09/27(金) 19:16:54.24
Dim a as Variant
a = "0"
If "a" = 0 Then
154デフォルトの名無しさん:2013/09/27(金) 19:30:28.78
Dim a as Variant
a = "0"
If "a" <> 0 Then
155デフォルトの名無しさん:2013/09/27(金) 19:31:16.19
間違えた
Dim a as Variant
a = "0"
If a <> 0 Then
156デフォルトの名無しさん:2013/09/27(金) 19:54:28.80
Dim a as Variant
a = "0"
If "a" = 0 Then

Trueにならないようにする一番シンプルな方法を教えました
157デフォルトの名無しさん:2013/09/27(金) 20:28:06.16
IfからEnd If(かElse)までを削除すればいいと思うよ
コードもすっきりするし一番シンプルじゃないかな
158デフォルトの名無しさん:2013/09/27(金) 20:51:25.23
>>147
Dim a as String
a = "0"
If a = 0 Then
159デフォルトの名無しさん:2013/09/28(土) 01:10:55.56
VBってしょぼいね
160デフォルトの名無しさん:2013/09/28(土) 01:33:15.71
>>159
歴史を知らないで、言語仕様だけ見ればそう思うかもしれないけど、

1991年に、RADの基礎を作り上げた
功績は計り知れないぞ。

http://www.youtube.com/watch?v=dPvhw1MRiaU
http://www.youtube.com/watch?v=dEqWA_mmPCk
161デフォルトの名無しさん:2013/09/28(土) 12:24:12.16
vb6は日本語ドキュメントがしっかりしていた。
今は機械翻訳で適当。

だからvb6はこれだけ根強いんだと勝手に思っている。
162デフォルトの名無しさん:2013/09/28(土) 12:24:38.14
>>160
過去の栄光を声高々に言われましてもねぇ
163デフォルトの名無しさん:2013/09/28(土) 13:26:07.59
>>162
過去のソフトなのに今なにを期待してるんだ?
164デフォルトの名無しさん:2013/09/28(土) 17:59:24.64
>>158

Trueじゃん
165デフォルトの名無しさん:2013/09/28(土) 23:52:33.53
>>164
手元にIDEが無いので確認できないが、
本当にTrueになるの?
Variantじゃなくて、Stringで?
166デフォルトの名無しさん:2013/09/29(日) 00:39:46.18
他の言語のような === の厳密な比較じゃなく == の比較だから
167デフォルトの名無しさん:2013/09/29(日) 00:41:42.13
VB6って、癖つよくね?
168デフォルトの名無しさん:2013/09/29(日) 01:08:50.15
いやVB6はふつーに使いやすいと思う
169デフォルトの名無しさん:2013/09/29(日) 01:20:36.61
>>136
>>138

いろいろとアドバイスありがとうございました。
まずは、Windows server 2003のサーバから、Windows server 2008R2への
コピーが尋常ではなく遅い件は、昨日、「snp 無効化」の実行により解消
され、速くなりましたが、SQL serverの処理速度アップには効果なしでした。

その他対策として、以下のことを行いました。
・データベース接続文字列の変更:SQLOLEDB.1→SQLNCLI10.1
・メンテナンスプランウィザードによる、インデックスの再構成、統計情報の
 更新等メンテナンスプランを毎日実行
・tempdbをコア数分追加
・SQL Server Management Studioにて、データベースのプロパティ−オプション
 より互換性レベルを変更:SQL2005→SQL2008
・SQL Server Profilerの実行(TSQL_Duration/フィルタ:Duration「1000」以上)

明日の夜中実行される処理のログとトレース数値を月曜の朝に送っていただくことに
なっているので、その後、解析です。

しかし、不可解なのは、同じ完全バックアップファイルをリストアしたデータベース、
同じCSVファイル、同じVB6.0のプログラムを使用し、サーバ機でもない、デバッグ用
パソコン(Windows7 64bit/Corei 5 3.1GHz/8GB)が一番スピードが出ることですねえ。
新サーバ(Windows server 2008R2/Xeon E5-2403 1.80GHz/32GB)の2倍以上の処理
速度が出ます。
また、デバッグ用パソコンには、SQL server 2005がインストールされているのですが、
処理速度はSQL server 2005の方が速いです。これも不可解ですねえ。
170デフォルトの名無しさん:2013/09/29(日) 02:30:17.06
>>169
サーバーだけど、ActiveDirectoryのデータベースおいてないよね?
それもSQL Serverのデータベースファイルと同じ物理ディスクに

そこが大丈夫なら、やっぱCPUのクロックの差じゃね?
171デフォルトの名無しさん:2013/09/29(日) 15:11:46.85
ディスク構成も接続プロトコルも書かないような馬鹿に何言ってもダメだ
172デフォルトの名無しさん:2013/09/29(日) 18:29:56.67
sendkeyでctlきー押しながらスペースキーを押す動作はどう書いたらいい?
173デフォルトの名無しさん:2013/09/29(日) 21:12:24.30
SendKeys?とりあえずヘルプ見てみようぜ。
174デフォルトの名無しさん:2013/09/29(日) 21:59:37.79
mk:@MSITStore:C:\Program%20Files\Microsoft%20Visual%20Studio\MSDN98\98VS\1041\vbenlr98.chm::/html/vastmSendKeys.htm
175デフォルトの名無しさん:2013/09/29(日) 22:00:43.50
ctrlやshiftやaltの組み合わせかた書いてあんじゃん
176デフォルトの名無しさん:2013/09/29(日) 22:19:39.65
何度も話題には出てると思うが、配列の数え方だとか

配列なら0からはじまるのに、コレクションなら1からとか。
177デフォルトの名無しさん:2013/09/30(月) 00:03:31.95
そこらへん使いづらいよね
178デフォルトの名無しさん:2013/09/30(月) 01:07:49.19
QuickBasicはQBasicやQB64が出てるし
TurboPascalはFreePascal、
DelphiはLazarusとかあるのに
VBにはオープンソースの互換VBが出てこないのが不思議だな
179デフォルトの名無しさん:2013/09/30(月) 02:13:37.57
互換作るメリットは?
180デフォルトの名無しさん:2013/09/30(月) 02:14:41.78
VBAやVBSがあるし、VB6互換のを作る価値ないんとちゃう
181デフォルトの名無しさん:2013/09/30(月) 11:33:01.91
>>179
オプソの寿命は使ってる人間の数だからな
VB6に関してMSのサポートが終わろうが、新OSに未対応になろうが
オプソ版があれば需要がある限り使える

>>180
VBAとVBSとVB6は全然違うじゃんw
182デフォルトの名無しさん:2013/09/30(月) 11:57:39.33
>MSのサポートが終わろうが、

オープンソースの互換VBとやらは誰にサポートされるのかね
183デフォルトの名無しさん:2013/09/30(月) 12:06:29.84
VB.Netでええやん?
184デフォルトの名無しさん:2013/09/30(月) 12:37:40.24
互換っていうのはソースコードが互換ってこと?
バイナリがVB6ランタイムとか使うってこと?
185デフォルトの名無しさん:2013/09/30(月) 12:39:25.51
MSDNに載ってるVB6のランゲージリファレンスを適当に満たせば互換?
186デフォルトの名無しさん:2013/09/30(月) 12:40:58.42
互換を目指すならVB6にそなわるバグやエラー発生個所をちゃんと再現しないと
バグやエラーを意図的に使ったコードとかあるんでしょう?
187デフォルトの名無しさん:2013/09/30(月) 13:34:14.14
>>176
>配列なら0からはじまるのに
ダウト
VBでは配列は好きな数字から始めれます
188デフォルトの名無しさん:2013/09/30(月) 14:25:55.76
Option なんちゃらだな
189デフォルトの名無しさん:2013/09/30(月) 14:26:33.66
Indexの最初の番号が0固定でないVBは使いづらい
190デフォルトの名無しさん:2013/09/30(月) 14:31:57.07
>>188
Option Baseだと0か1しか選べない

Dim Hoge(7 To 53) As Integer
みたいなのじゃね?
191デフォルトの名無しさん:2013/09/30(月) 14:32:56.28
空の配列がVariantでしか扱えない
192デフォルトの名無しさん:2013/09/30(月) 18:21:35.86
互換とやらの定義が分からない

ソースコードがそのまま使えて、挙動もほぼ同じってこと?
193デフォルトの名無しさん:2013/10/01(火) 00:40:58.78
>>171
ディスク→C:300GB×2/D:300GB×2/E:300GB×2(Raid1/SAS 15000prm)
接続プロトコル→共有メモリ(localhost)

※改めてVB6.0プログラム実行時のタスクマネージャーを見てみたら、
 4コアの内1つしか動いておらず、残り3つはほぼ休みっぱなし。
 それでいて、新サーバの搭載CPUはハイパースレッディングやターボ
 ブーストも未対応でクロック数も落ちてるとなると、CPUが原因かなあ?
 CPU使用率を引き上げて処理速度を上げるような方策はないですかねえ。
194デフォルトの名無しさん:2013/10/01(火) 01:31:00.14
アホだこいつ
195デフォルトの名無しさん:2013/10/01(火) 01:46:52.78
VB6ってシングルスレッドだし
VB6互換のコンパイラ作るだけならそんなに難しくないんじゃないの
IDEまで作るなら苦労も多いだろうけど
196デフォルトの名無しさん:2013/10/01(火) 01:47:38.92
互換ってのはあくまで互換であって
性能面までVB6レベルまでに仕上げる必要もないんだし
197デフォルトの名無しさん:2013/10/01(火) 01:49:47.23
C#あたりでVB6互換のコンパイラとIDEを作ればいいんじゃね
C#って簡単そうだし
198デフォルトの名無しさん:2013/10/01(火) 04:00:15.02
>>193
共有メモリでlocalhostとか意味解らんが、>>114は試したのかね
199デフォルトの名無しさん:2013/10/01(火) 07:00:35.83
>>198
Windows server 2003のサーバから、Windows server 2008R2への
コピーが尋常ではなく遅かったのですが、「snp 無効化」の実行により解消
され、速くなりましたが、SQL serverの処理速度アップには効果なしでした。
200デフォルトの名無しさん:2013/10/01(火) 07:34:34.38
>>198
1.「snp 無効化」の実行により、Windows server 2003のサーバから、Windows
  server 2008R2へのコピーが尋常ではなく遅い件を解消
2.データベース接続文字列の変更:SQLOLEDB.1→SQLNCLI10.1
3.メンテナンスプランウィザードによる、インデックスの再構成、統計情報の
 更新等メンテナンスプランを毎日実行
4.tempdbをコア数分追加
5.SQL Server Management Studioにて、データベースのプロパティ−オプション
 より互換性レベルを変更:SQL2005→SQL2008

1〜5全て新サーバにおけるVB6プログラムによるSQL server更新処理速度UPに効果なし

2,4,5により、Windows7 64bitのデバッグPCにおけるVB6プログラムによるSQL server
更新処理速度UPに効果あり
(119分→62分/新サーバは同一CSVによる更新処理を行って150分)

SQL Server Profilerを実行(TSQL_Duration/フィルタ:Duration「1000」以上)
したが、88分の処理差につながるような数値は出現せず
201デフォルトの名無しさん:2013/10/01(火) 13:03:16.66
202デフォルトの名無しさん:2013/10/01(火) 13:27:17.39
SQLOLEDB と SQLNCLI

どっちを使うべきなのかな?
VB6でもやっぱり.net用に実装されたNative Clientを使うべきなのだろうか?
203デフォルトの名無しさん:2013/10/01(火) 13:37:17.15
細かくミリ秒単位でログだしてどこで時間食ってるか比べてみるべきだよ
そうしないと何もわからないよ
204デフォルトの名無しさん:2013/10/01(火) 13:39:20.43
>>202
Native ClientはSQL Server2005からバンドルされるようになった専用ドライバーで
OLE/DBやODBCを含むがADOやDAOは含まない。
ADOやDAOが必要な場合は結局MDACも必要になる。
MDAC(ADO)+Native Client(OLE/DB)で使って問題ない。

ちなみに.NETから使う場合は.NET Data Provider for SQL Serverが
.NETに含まれるのでNative Clientは不要。

.NET Data Provider for ODBC + Native Clinrt(ODBC)
.NET Data Provider for OLE/DB + Native Clinrt(OLE/DB)
の組み合わせは推奨されていない。
205デフォルトの名無しさん:2013/10/01(火) 13:56:14.19
>>204
簡単なベンチをやってみたんだが
3万件のレコードから抽出、挿入、更新、削除とやってみたところ
SQLNCLIの方が32%〜46%程度高速となったが
なぜこんなに差が出るんだろう?
むしろOLEDBの方がシンプルで高速だと思うんだけど
まあケースバイケースなのだろうが・・・
206デフォルトの名無しさん:2013/10/01(火) 13:58:28.49
ADO = OLEDBではないのか?
207デフォルトの名無しさん:2013/10/01(火) 14:18:43.36
ADOはOLEDBのラッパー、VBやASPから使いやすくしたもの
208デフォルトの名無しさん:2013/10/01(火) 14:33:28.17
>>207
Native Clientの位置づけは?ADOとOLEDBの間?
209デフォルトの名無しさん:2013/10/01(火) 14:38:32.54
|------------------|
| SQL Server     |      
|------------------|
| Native Client    | 
|------------------|
| OLEDB        | 
|------------------|
| ADO          |       
|------------------|
| VB6          |
|------------------|
210デフォルトの名無しさん:2013/10/01(火) 14:40:05.19
>>208
ネイティブのCLI(コールレベルインターフェイス)に加えて
OLE/DBのインターフェイスとODBCのインターフェイスを
併せ持ってるモノリシックドライバー
211デフォルトの名無しさん:2013/10/01(火) 14:45:21.85
VB6からADO経由でOLEDBを使用してSQL Serverへアクセス

|------------------|
| SQL Server     |      
|------------------|
| OLEDB        | 
|------------------|
| ADO          |       
|------------------|
| VB6          |
|------------------|


VB6からは直接Native Clientを使えないがADO経由で使える

|--------------------|
| SQL Server       |      
|--------------------|
| Native Client(OLEDB)| 
|--------------------|
| ADO           |       
|--------------------|
| VB6           |
|--------------------|
212デフォルトの名無しさん:2013/10/01(火) 14:53:30.49
SQL Server 2012 以降は SQL Server Native Client OLE DB プロバイダーが廃止されたから注意な
213デフォルトの名無しさん:2013/10/01(火) 14:54:57.03
>SQL Server 2012 以降は

こめん、SQL Server 2012 まではサポートされてた

つまり、SQL Server 2012 の次のバージョンはVB6では使えないって事になる
とうとうVB6も終わりに近づいたなw
214デフォルトの名無しさん:2013/10/01(火) 14:56:47.87
>>213
ODBCが残るから大丈夫では?
215デフォルトの名無しさん:2013/10/01(火) 15:01:11.27
>>214
MDAC以来、ODBCは古い仕様だから使うな、OLE-DB Providerにしろ、とリード。
LINQの都合で.NET Frameworkを使え、と誘導。
それが手のひらを返したように、古くさいODBC接続にするだと?
216デフォルトの名無しさん:2013/10/01(火) 15:05:36.82
ODBCは他のプラットフォームとの接続に必要だからなくすになくせないのかな
MDACのOLEDBドライバが引き続き使えるとかないの?
217デフォルトの名無しさん:2013/10/01(火) 15:06:11.28
ODBCをラップする新たなインタフェースがActiveX(COM)でサポートされるとは考えられんしな。
今更SQL ServerへDSNで接続とかありえんわ。
218デフォルトの名無しさん:2013/10/01(火) 15:36:26.17
>>216
>MDACのOLEDBドライバが引き続き使えるとかないの?

たぶんAzureでもその手が使えるだろうが、使えるってだけで機能や性能が制限されるだろうね
こんなアホ企業放っておいてみんなで仲良くJavaへ行こうか?w
219デフォルトの名無しさん:2013/10/01(火) 16:33:16.61
こんどはOracleの高額なサポート契約に縛られるのか・・
220デフォルトの名無しさん:2013/10/01(火) 20:09:02.62
OLE
ADO
DAO
何て読むの?
221デフォルトの名無しさん:2013/10/01(火) 20:20:45.83
おれ
あど
だお
222デフォルトの名無しさん:2013/10/01(火) 20:45:44.07
俺アドだお!
223デフォルトの名無しさん:2013/10/01(火) 20:46:40.56
オリィ
アドゥ
デイオ
224デフォルトの名無しさん:2013/10/01(火) 21:04:00.73
俺、亜土だぉ
225デフォルトの名無しさん:2013/10/02(水) 01:56:04.09
>>199
お前がSQLServerを理解してないのは分かった
ファイルコピーとか聞いてねえよ。SQLServerが使ってるプロトコルどうなってるかって言ってるんだよ
お前には無理だから、素直に金払ってどっかにコンサル頼め
226デフォルトの名無しさん:2013/10/02(水) 22:09:06.60
>>225
ご親切にどうも。
でも、もういいよ。解決したし。
LANとかプロトコルとかやけに拘ってたみたいだけど、全然関係
なかったし。
227デフォルトの名無しさん:2013/10/02(水) 22:21:52.63
解決方法くらい書けや
228デフォルトの名無しさん:2013/10/03(木) 05:33:54.29
>>227
なんでや?
229デフォルトの名無しさん:2013/10/03(木) 05:34:39.44
ここの回答者は役立たずばかりのくせにすげえ偉そうにしてるゴミばっか
230デフォルトの名無しさん:2013/10/03(木) 13:42:06.27
ボトルネックがCPU、ストレージ、ネットワークのどこにあるのか
わからないことには、これ以上アドバイスのしようがない

複数コアのうち1つだけ動いてるということだけど、
その1コアの稼働率はどんなものなの?
231デフォルトの名無しさん:2013/10/03(木) 13:45:40.27
>>230
いい加減、相手にするのやめろよ
232デフォルトの名無しさん:2013/10/03(木) 16:15:28.15
>>228
類似トラブルが発生した人が解決方法を見つけやすくなるため
233デフォルトの名無しさん:2013/10/03(木) 18:47:36.82
>>230
4コアの内、稼働しているのは1コアのみで稼働率は25%前後。

本システムは、DBの構造上、バッチ系プログラムによるマルチスレッド処理が
不可であり、コア数を増やしてもパフォーマンスに影響しないことが判明。
故にディスクアクセススピード、CPUのクロック数などに処理速度は依存する。
今回は、ディスクはSASの15000RPM相当のものを積んでおり、CPUのクロック数が
極端に落ちたことが原因と判明。

本システムの推奨CPU(Xeon E5-2637(3.50GHz)以上)を無視して、安い
CPU(Xeon E5-2403(1.80GHz))を購入したのだから、そりゃ処理速度は
落ちますよ、プログラムのマルチスレッド処理化による処理速度UPは
出来ませんので、CPUを高性能なものに交換してくださいという結論になり
ました。
234デフォルトの名無しさん:2013/10/03(木) 18:57:05.73
>>232
なんでそんなことする必要あんの?
てめえの自己中にはつきあえねえな
235デフォルトの名無しさん:2013/10/03(木) 19:00:32.81
>>233
なんだ、早くに答え出てたジャン
機器選定で営業トークにのせられたのか
236デフォルトの名無しさん:2013/10/03(木) 19:25:58.59
>>234
必要もないし義務でもないよ、法律もないし法的拘束力もないし
解決法書くってのはただのマナーだから
237デフォルトの名無しさん:2013/10/03(木) 19:26:29.55
マナーなんてのは守る必要性はないからね
238デフォルトの名無しさん:2013/10/03(木) 20:00:41.81
>>236
てめーがやってんのはただの自己中だ
マナーならもしよろしければと枕詞を添えて丁寧に依頼するべきだ
できないのならてめーにマナーを語る資格はねえ、ちなみに俺は秘書検定一級もってる
お前は中卒資格しかもってないだろ、じゃあお前が完全に間違ってるってことだ
239デフォルトの名無しさん:2013/10/03(木) 20:01:27.95
Xeon E5-2403でCPUネックか...
稼働率25%って、単コアの話じゃないよな?
確かクライアントも同一マシンに乗ってたんじゃなかったっけ

ま、どうでもいいか
240デフォルトの名無しさん:2013/10/03(木) 20:03:59.54
>>238
そうだね^^
241デフォルトの名無しさん:2013/10/03(木) 20:06:39.92
一瞬VBAスレかと思ったぜ
242デフォルトの名無しさん:2013/10/04(金) 00:03:56.15
>>235
サーバはうちから入ってないんですよ。推奨スペックだけ出したんですけど
結局、コストカットでチープなCPUにされて。
ユーザーからしたら、コア数を増やそう(2コア→4コア)という考えの
もとに選定したようですが、いかんせんうちのシステムがシングルスレッド
稼働が前提で、コア数を増やしてもパフォーマンスに何の影響もないなんて
今回の調査で本部から回答があるまで誰も知らなかったことですから。
今までどのユーザーもクロック数3.5GHZ以上のCPUのサーバしか納品して
こなかったので、誰も気づかなかったようです。
クロック数1.8GHzのCPUなんて、ためらいはなかったのかなあ。
243デフォルトの名無しさん:2013/10/04(金) 10:53:12.27
データベースを使ってるのにシングルスレッド前提なのか
244デフォルトの名無しさん:2013/10/04(金) 10:57:33.43
フロントがOLTPやWEBなら分散可能だろうけど
バッチ系はあらかじめ分散する前提で作らないと分散にならないうえ
たいていのケースでは分散化してもパフォーマンスの向上につながらない
245デフォルトの名無しさん:2013/10/04(金) 12:01:18.41
クロック数がCPU性能の全てじゃない
ここのベンチマークでも見てみろ
ttp://pc.happy-guide.net/select/benchmark_cpu.html

サーバではテスト環境と違って他にサービスがゴリゴリ動いてるんだろ
それにそもそもマルチコアを活かせるようなプログラムになってないんだろ
古いPCで動いてたプログラムをマルチコアのマシンに移したら
高速に動くとかって思い込みしてる奴が多い
1コアしか使ってない件
246デフォルトの名無しさん:2013/10/04(金) 12:03:48.90
BIOSでCPUの動作をマルチからシングルに切り替えできる場合に限るが
ボロプログラムがマルチコアで動作が遅いって場合は
シングルにしてみろ、高速で動く場合もあるぞ
247デフォルトの名無しさん:2013/10/04(金) 12:11:57.05
だいたい、DBのテーブル設計もボロボロなんだろ
キーやインデックスの設定とかボロボロなんじゃないの?
いまどきフリーのDBでもかなりのレスポンス叩き出すぞ
不定期にPostgreSQLに100万件ほどのテーブルを取り込んでるけど
30秒ほどで取り込める、前後の処理と合わせても4分かかってないが・・・
248デフォルトの名無しさん:2013/10/04(金) 12:16:55.95
winNT3.15のころにSQL ServerへAccessからアタッチして
数万件のデータを処理しようとして
処理時間50分とかかかったのを思い出した、
ODBCがタイムアウトして途中で失敗したりとか散々だったが
そんなレベルの話なのか?www
249デフォルトの名無しさん:2013/10/04(金) 13:21:52.87
>コア数を増やしてもパフォーマンスに何の影響もないなんて
>今回の調査で本部から回答があるまで誰も知らなかったことですから。

前からちょくちょく出てくる本部の話だけど、かなり頭の悪いスキルの低い集団の匂いがする
たとえアプリがシングルスレッドであっても、そのアプリがAPIもドライバーも使わず
本当に純粋に機械語コードのレベルで自分のコード内だけで動く演算プログラムなのであれば
シングルスレッドだからマルチコア環境は意味がないと言えるだろうが
実際にはAPIやドライバを通してOSのプロセスやIOプロセッシングなど
マルチスレッドで処理されるサービスの走行時間が大半になるのだから
自分が作ったアプリがシングルスレッドでも、マルチコアリソースを十分に使用するのが普通だけどね。

タスクマネージャのCPU負荷のグラフを見れば猿にもわかる事なのだけれども
例えばDBアクセスで高負荷になるようなアプリをシングルスレッド代表なVB6で作って
走行させた場合、各コアのCPU負荷グラフが同じような山なりになって表示されるのはわかるはず。
もしシングルスレッドアプリの走行が1コアしか使わないのなら、どれか1つのグラフだけが動いて
残りのコアのグラフはフラットなまま変わらないはずだろ?

そんなスキルも経験もない連中が本部にいる会社ってどこだよ?
伊藤○やC○Kだってもう少しはまともな連中だよ?
250デフォルトの名無しさん:2013/10/04(金) 13:38:18.19
>>249
そういうお前も頭悪く見えるが
251デフォルトの名無しさん:2013/10/04(金) 13:42:53.21
>>250
実はその本部の中のひとだったりする
252デフォルトの名無しさん:2013/10/04(金) 13:48:09.09
SQL ServerだがマジキチでOLEDB廃止なのな
ODBCを残すって一体何考えてんだ?
Windows以外のプラットフォームでODBCが使われているからそっちを主流に?
アホかよ?Microsofteeのガキどもがwwww

でもどうせ.net用にはODBCに最適化したサービスプロバイダが提供されるに違いない。
一番お困りなのはOLEオートメーション、ActiveXが無いと何もできないVB6ユーザーだなwww

この時代遅れのアナクロニズム野郎が?いつまで枯草にしがみ付いてんだよ?俺もだがwww
253デフォルトの名無しさん:2013/10/04(金) 14:57:19.54
> 4コアの内、稼働しているのは1コアのみで稼働率は25%前後。

なんだから、

> シングルスレッドだからマルチコア環境は意味がない

は正しかったんじゃねーの?
254デフォルトの名無しさん:2013/10/04(金) 15:13:36.60
> 4コアの内、稼働しているのは1コアのみで稼働率は25%前後。

どうやったらこんな片減りな使い方ができるのかと
逆に意図して3コア停止でもさせなければ無理だろうが?
対称型マルチプロセッシングではブート時に1CPUに固定するくらいだが
最近はUEFIでブート時もマルチコア使うわ
255デフォルトの名無しさん:2013/10/04(金) 15:16:13.07
バグでDoEventせずにループし続けるコードでも書いたんだろうよ
常時CPUに負荷がかかるような
256デフォルトの名無しさん:2013/10/04(金) 15:44:22.26
そのうちDoEvents関数を4回実行すると4コアを使用するとか言いだす奴がきそうな悪寒
257デフォルトの名無しさん:2013/10/04(金) 15:49:47.55
VBのマルチスレッドはどう考えても冗長で嫌

Dim t As New System.Threading.Thread(New System.Threading.ThreadStart(AddressOf DoSomething))
t.Start()

Private Shared Sub DoSomething()
      :
End Sub
258デフォルトの名無しさん:2013/10/04(金) 15:54:34.40
DoEventsしないと、スレッドのコンテキストが切り替わらないのか、勉強になりました
259デフォルトの名無しさん:2013/10/04(金) 15:55:50.31
VB6時代のジングルスレッドの呪縛から逃れたい思いがあるのか
VB6からnetに移行するとマルチスレッドが不要でもすべてマルチスレッドで書く病気が3年ほど続く
そのうち意味のない事に気づき落ち着くけどな
260デフォルトの名無しさん:2013/10/04(金) 15:58:02.90
>>255の人気に嫉妬
261デフォルトの名無しさん:2013/10/04(金) 15:58:55.62
>>258
知らぬが仏で、コントロールに値を設定してDoEventsかけると予期せぬタイミングでイベント発生で泣くことになるよ?
結果、Enabled = Falseにするが、Trueにした瞬間にイベントが発生したり、そうなるともう修羅場よw
262デフォルトの名無しさん:2013/10/04(金) 16:03:14.45
イベントの正体はWindowsメッセージだからなぁ
Enabledを切ったところでメッセージは実行されずキューに溜っているだけだから
有効にした瞬間に一斉にイベントが発生しても当然の結果なんだがな
かと言って、喪失したメッセージもありで、何が有効になるかはその時のお楽しみって訳よ
修羅場と言うより占いみたいなもんだよ
263デフォルトの名無しさん:2013/10/04(金) 16:08:27.60
>>261
イベントの再入と、スレッドは別の問題だろ
264デフォルトの名無しさん:2013/10/04(金) 16:09:34.15
フックだフック
265デフォルトの名無しさん:2013/10/04(金) 16:10:39.72
>イベントの再入と、スレッドは別の問題だろ

べつの問題だが結果的にむずびつくんだなコレガ
266デフォルトの名無しさん:2013/10/04(金) 16:13:35.68
Control.Invokeあたりかな
スレッドの同期にメッセージポンプを使ってる
267デフォルトの名無しさん:2013/10/04(金) 16:14:44.62
DoEvents → GetThreadContext → SetThreadContext → ReadProcessMemory
268デフォルトの名無しさん:2013/10/04(金) 16:34:22.10
たしか前提としてクライアントアプリもサーバと同一マシンだったはず
その状態で1コアのみフルで張り付くってことは、
クライアントかサーバか、どっちかしか仕事してないってことだぜ
バッチ作業でサーバだけが一生懸命仕事してるって状況はあり得るだろうけど
そもそも今のSQLServerはちゃんと複数コア使うんじゃないかね
ストアドリコンパイルするとか、その辺でいくらでも早くなりそうな気はするけど
269デフォルトの名無しさん:2013/10/04(金) 18:38:11.91
SQL Serverを使って7年になるが一度もストアドを使ったことが無い
世の中では3フェーズコミットとか言ってビジネスロジックはSQL Server側に構築するのが常識と言われたが
バージョンアップの度にヒットしなかったテクノロジーを切り捨ててきたMicrosoft社をどうしても信じる事が出来ない
Microsoft Bob、Microsoft At Wor、Windows Printing System、WebTV、Microsoft Money・・・・
数え上げたらキリが無い
270デフォルトの名無しさん:2013/10/04(金) 18:46:10.43
3階層アプリと2フェーズコミットをごっちゃにするなよ〜
3階層だとビジネスロジックはアプリケーションサーバー
ストアドプロシージャにビジネスロジック載せるような事はしないぞ
271デフォルトの名無しさん:2013/10/04(金) 18:53:43.69
>>270
あれーっ?そうだっけw
まあ無縁なんで適当な知識ですまん
とにかくSQL Serverを信じてロジック載せたはいいが使えなくなったら悲惨な事になる
だからロジックはクライアント側で、最悪Oracleになってもどうにか対応できるように作っている
SQL Server側でnetで組み上げたらもう他のSQLへの移行は無理だろうからな
272デフォルトの名無しさん:2013/10/04(金) 23:58:46.70
ストアドにビジネスロジックのせる奴は必ずいるので
ストアド禁止にしてる。

パフォーマンスに問題のある時だけ、こっそりストアド。
273デフォルトの名無しさん:2013/10/05(土) 00:07:36.37
最初から読む気もしないので読まないと宣言するが、
SQL ServerのデータをVB6でレコードセットで処理してるってこと?
そんなアホな話じゃないんだろ?
SQL文投げて応答が帰るまでに時間がかかるだけだろ?
テーブル設計がクソなだけじゃないの?
274デフォルトの名無しさん:2013/10/05(土) 00:15:15.36
宣言したけどザックリ読んだw
CSVを取り込んでテーブル更新するだけかよ
CSVの件数もテーブルの件数も更新対象がCSVの全てを対象にするのかも
一対多なのか、キーは貼ってあるのか
何も重要なことは書いてないなw
例えば数万件のCSVをVBで読んで1件1件レコードを読んでUPDATEしたりINSERTしたりの
SQLを吐いて処理してたら爆笑できそうだけど
275デフォルトの名無しさん:2013/10/05(土) 00:23:41.97
>>273
トリガーとアクションクエリーにどれだけの差があると思ってる?
どちらも投げたきりではなくてレスポンス待ちになってる。
プログラムがシングルスレッドだと明らかにレスが返るまで走行が止まる。
マルチスレッドにすれば言うまでもない。
実際にはストアドとアクションクエリに通信上のトラフィックでの大きな差は無い
大きな差は処理を分散できるという事だ。
しかし最近はPCの性能が飛躍的に向上したので、一般にハード性能が
数世代昔になりがちなサーバーで処理する方が絶対に高速とも言えなくなっている。

ここ一連のスレの流れはそういう事だったんじゃないのかい?
276デフォルトの名無しさん:2013/10/05(土) 00:33:41.12
>>274
冒頭にOption Explicitを記述してもその程度かw

>例えば数万件のCSVをVBで読んで1件1件レコードを読んでUPDATEしたりINSERTしたり

実際にCSVの一行ごとにINSERT/UPDATEしてもそれほど時間がかからないSQL Serverなのだよ。
それと、アクションクエリーならテーブル上にすでにキーに対応するレコードが存在するかどうか確認する必要が無い
INSERTしてみてAffectedRecordsが0ならUPDATEする、あるいは無条件にINSERTとUPDATEを
エラーを例外処理をスルーさせて強引に実行しまくる手もある

むしろ、書き込むレコードを検索してレコードが存在したらUPDATE、無かったらINSERTなんてコーディングしてる方が
怪しい無駄な事をしていそうな香りがするけどね。
277デフォルトの名無しさん:2013/10/05(土) 11:18:45.91
>>275
CSVの内容によりけりだしストアド丸投げで処理ってより
>>276が書いているようにCSVを読んでテーブルをレコードセットで読み込んで
読み込んだ値を編集してINSERTしたりUPDATEしたり
ゴリゴリやってんじゃねーの?
しかも、WHEREで検索かける部分にインデックスが作られていないとか
そんな問題なんじゃないのか?って話

そもそも、肝心な情報を何も書かずに遅い遅いってアホだろ

>>276
CSV1件毎にVBでなにをしてるかによるだろ
例えばCSV1000件が同じレコードを更新しているのに
ソートすら無でランダムに同じレコードを読み出して更新してたら?
遅い遅いって奴はだいたいプログラムがボロなんだよ

昔見たやつは、超絶に遅いとお物いたらトランザクションかけてないとかもあった、
プログラムを書き直しただけで1時間かかってた処理が5分程度に
なった事もあるよ
278デフォルトの名無しさん:2013/10/05(土) 11:31:58.35
>>277
確かにそうなんだけどね。
でも、同一LAN上にある新旧のサーバで、新サーバのDBは旧サーバの完全バックアップを
リストアしたもので、同じプログラムで同じCSVを処理して、処理速度が違う、しかも
DBの構造上、マルチスレッド処理が不可となると、現プログラムの処理(コード)を見直して
地道に改善していくより、CPUをクロック数の高いものに交換した方が早いかと・・・
ユーザーは旧サーバ並みの処理速度が出ればいいということなので。
279デフォルトの名無しさん:2013/10/05(土) 14:38:13.17
システム開発側が推奨環境として高クロックなサーバーを要求してるのだから
低クロックのサーバーを用意したユーザーが糞だわな
280デフォルトの名無しさん:2013/10/05(土) 15:51:17.47
>>279
それでも、生粋のSEである、我がシステム部のリーダーは、CPU交換なんて
安直なことはせずに、まず、プログラムを見直して、現状と同じ程度の処理時間
まで縮められるよう作業すべきだと言う。
で、担当SEの私は、CPUを高性能なものに交換するのに何もリスクはないはずで、
最短距離で本現象が解消されるであろう策を取るべきだと主張したのが、金曜の話。
私は元営業なので、生粋のSEの方とは考え方が根本的に違うのかも。
281デフォルトの名無しさん:2013/10/05(土) 16:25:06.41
量がわからんから、なんとも言えないけど...
素直に、DROPしてからなら、UPDATEする必要は無いと思うが...
282デフォルトの名無しさん:2013/10/05(土) 16:29:27.09
CSVを先頭から一行ずつ読んで処理が遅いのか、クエリの処理が遅いのか
そのくらいの切り分けも出来てないでただ遅いという問題提起
元営業だろうが元ドカタだろうが、今その仕事を任されているのだから経歴なんて関係ないでしょう?
ちょっと、甘えてんじゃないよ坊や
283デフォルトの名無しさん:2013/10/05(土) 16:31:52.91
sql server2008からならinsert/updateにmergeが使える
284デフォルトの名無しさん:2013/10/05(土) 16:40:33.31
>>282
CPU交換という手っ取り早い解決策があるのに、プログラムの見直し
なんて面倒くさいことを提起する発想が分からんと言ってるんですよ。
それしかないならやりますけどね。
結果が同じなら、最短距離で解決した方がいいのでは?
まずプログラムを見直そうなんて自己満足にしか思えないけどなあ。
285デフォルトの名無しさん:2013/10/05(土) 16:42:53.88
>>284
新規のプログラムならプログラムで何とかするべきだろうけど、
他で動いて実績があるものならマシン増強が正しい選択だろう
286デフォルトの名無しさん:2013/10/05(土) 17:19:46.32
最近はPCの性能が飛躍的に進歩っていつの時代の話だよ...

少なくともCPUの性能向上速度はどんどん低下しており、
とうの昔にムーアの法則の適用外の世界になってる。
287デフォルトの名無しさん:2013/10/05(土) 17:36:26.56
>>284
本当にCPUの交換で効果があるの?
CPUの交換で効果が無い場合の責任は誰がどうやって取るの?
288デフォルトの名無しさん:2013/10/05(土) 17:45:19.93
>>287
本部、事業部、サーバベンダーともCPU交換による効果に関しては
間違いないと言っている。
その交換費用も、営業サイドでシステム保守料で賄うということに
なっているので、ユーザーに費用負担のリスクもない。
289デフォルトの名無しさん:2013/10/05(土) 17:45:57.69
いいかげんVBに関係ないからよそ行ってくれない
290デフォルトの名無しさん:2013/10/05(土) 17:48:24.27
飽きたらな
291デフォルトの名無しさん:2013/10/05(土) 17:48:25.56
大学の空き教室を学生が勝手に利用してるみたいなもんか
292デフォルトの名無しさん:2013/10/05(土) 18:02:54.34
単純に構って欲しいだけだと誰か気づいてやれよな
293デフォルトの名無しさん:2013/10/05(土) 20:44:00.33
VBプログラマスレに来てCPU性能に頼ろうって話をしているのか
SEかプログラマか知らんが一応は場末の技術者なんだろ?
プログラムを追ってみて改善してみようとか一切考えもしないのか?

鯖とテスト環境で速度差があるって言うけど
サーバと通常のクライアントPCではバックグラウンド処理と
プログラムでプライオリティの差があるからじゃないの?

俺なら間違いなくCPUのアップグレードよりも何よりも
もっとも手軽な方法としてプログラムの見直しをするわw
294デフォルトの名無しさん:2013/10/05(土) 20:57:46.89
餌に食いついたw
295デフォルトの名無しさん:2013/10/05(土) 21:44:03.53
>>293
費用負担の件さえクリアすれば、CPU交換の方が手軽だと思うけど。
営業の処理だけで方が付く。
プログラムを見直したところで、どうせ費用はとれないんだし。
他の金の取れる案件の作業をした方がいいな。
296デフォルトの名無しさん:2013/10/05(土) 21:47:42.64
俺はプログラムをチューンする方を選ぶぜ(キリッ
なんて奴はそもそもVBを選ばない
297デフォルトの名無しさん:2013/10/06(日) 00:40:13.72
>>295
いくらサーバー向けCPUがバカ高いっても20万もしないだろう。
バカたれにプログラムの見直しやらせたらそれ以上の給料もっていきやがるだろう。
他で速度的に問題が起きてないのなら交換で済ませるのが妥当だな。
298デフォルトの名無しさん:2013/10/06(日) 03:32:17.27
はいはい。さっさとハード買い替えて2度と来るな
299デフォルトの名無しさん:2013/10/06(日) 08:45:56.38
>>298
費用対効果や作業効率より自己満足を優先するタイプか?
ビジネスには不向きだな。
300デフォルトの名無しさん:2013/10/06(日) 08:56:47.30
>>299
目先の費用対効果・作業効率と今後役に立つであろうノウハウの蓄積を天秤にかけてどっちを取るかだけのことだろ。
最終的な判断は全体を見通せる人間がやること。
判断した人間に不服があるなら屈服させるくらいの情報を提示すればいい。
それができないなら文句言うな。
301デフォルトの名無しさん:2013/10/06(日) 09:29:49.78
VB6で作ったアプリを今になって高速化対応するぐらいなら
他言語への変更に向けた準備をしておくべきで、その中で高速化も検討できる
今はCPU交換でしのげるならそれが妥当
302デフォルトの名無しさん:2013/10/06(日) 13:02:27.45
ハード買い替えるならもうソフトの話ですらないから
いい加減よそいってくんない
303デフォルトの名無しさん:2013/10/06(日) 13:59:08.14
ハードの問題を言語の質問スレで解決しようとしている馬鹿がいると聞いてやってきました!

つーか、本当にハードの問題なのか?
適切な質問スレを選べて居ない時点で、色々疑っちゃうよねw
304デフォルトの名無しさん:2013/10/06(日) 16:15:48.11
テスト環境がどうとか鯖がどうとか関係ない話はいい
いいから足かせになってるプログラムの部分を出してこいよ
305デフォルトの名無しさん:2013/10/06(日) 18:12:08.27
ハード入れ替えで生じたパフォーマンスの低下なら
そりゃハードだろう。
306デフォルトの名無しさん:2013/10/06(日) 18:19:03.69
OSもサーバもミドルも変わってるだろうけどな
307デフォルトの名無しさん:2013/10/06(日) 22:37:14.04
当初はVB6及びプログラムの64bit環境下でのパフォーマンスの問題だと思って
いたので質問しました。
しかしその後の調査で、Windows7 64bitのCorei 5パソコンで十分なスピードが
出ること、データベースの構造上の問題でバッチ系プログラムはシングルスレッド
で動かすしかないこと、CPUのコア数もパフォーマンスに影響ないこと、故に処理
速度はディスクの回転数やCPUのクロック数に依存することが分かったので、
だったら、プログラムの見直しなんて面倒くさいことはせずに、手っ取り早く、
CPUを高性能なものに交換してもらおうという結論になりました。
308デフォルトの名無しさん:2013/10/06(日) 22:39:05.18
>データベースの構造上の問題でバッチ系プログラムはシングルスレッド で動かすしかないこと
まあ、DB使うような普通のバッチならそんなことはないけどな
とりあえず2度と来るな
309デフォルトの名無しさん:2013/10/06(日) 22:50:20.68
話を続けて誘っておいて二度と来るなとは下衆の極み
310デフォルトの名無しさん:2013/10/07(月) 00:06:42.64
ストアドよりインデックスのほうが速いよ
311デフォルトの名無しさん:2013/10/07(月) 00:38:57.08
>>308
何でそんなに偉そうなの?
低く低くという姿勢でいた方が、ギスギスしなくていいよ。
312デフォルトの名無しさん:2013/10/07(月) 00:42:51.34
> 何でそんなに偉そうなの?

俺もこんなセリフ言われてみたい。

例えば不良に絡まれてる女の子を助けたとして
不良に「お前正義の味方のつもりか?」みたいに言われてみたい。

そしたら、「え? 俺、君たちから見たら、
正義の味方に見えるの? そんなつもりはないけど、
君たちには正義の味方に見ててしまうのは、
仕方ないかなぁ。どこが正義の味方に見えるんだい?」
って言ってみたいwww
313デフォルトの名無しさん:2013/10/07(月) 05:43:46.55
>>312
なんで正義の味方だいじなとこで噛むん?
314デフォルトの名無しさん:2013/10/07(月) 10:17:36.92
プログラムの見直しが面倒くさい?
そんな時代なのかね
ここはプログラマのスレだから二度とくるな
オペレータースレでも行けよ
315デフォルトの名無しさん:2013/10/07(月) 10:25:03.59
マのスレ、という前に、ムの板だろう
316デフォルトの名無しさん:2013/10/07(月) 11:17:41.90
いやでもコスト考えるとハード買い換えたほうが安いし
317デフォルトの名無しさん:2013/10/07(月) 13:21:47.82
CPU変えたけど、多少の改善は見られたが根本的解決にはならなかった
…という結末を希望してるのは、俺だけじゃないはずだ。
318デフォルトの名無しさん:2013/10/07(月) 14:47:46.67
VB6で作って8年稼働していたシステムをC#で作り直しました。
さぞかし性能がアップすると思いきや、ほとんど速度が変わらないばかりか
演算プログラムに関してはC#の方が7倍も時間がかかる処理が発生
総じて移行は大失敗と相成りましたが、少なくともCPUを交換してなんとかなるなら
Pentium IIIを使っていたとかいうオチがあるに違いありません。
319デフォルトの名無しさん:2013/10/07(月) 14:51:17.65
>>318
.netは中間言語もしくは最適化しきれないJITで吐かれた非効率なマシン語で動くんだよ?
Cコンパイラで最適化されたコードで走行するVB6に性能で勝るなんて構造的に無理。
320デフォルトの名無しさん:2013/10/07(月) 16:41:29.61
マシンがVB6のままで.NET化したのなら当然遅いだろう
そうでなければ、文字列の足し算やってるとかそんな感じかな
321デフォルトの名無しさん:2013/10/07(月) 17:02:34.81
戦略レベルの間違いを戦術でどうにかしようとするのは間違いだと言っているんだッ
322デフォルトの名無しさん:2013/10/07(月) 17:28:22.18
何でprofileしないのか不思議だったんだが、プログラマじゃなかったというオチか。
323デフォルトの名無しさん:2013/10/07(月) 18:24:20.59
純粋に.netは遅いよ
ただベンチマークテストでは速くなるような仕込みがあるから
素人には大きな差が無いと信じ込ませることが可能
実運用に入れば即座にバレることでありんす
324デフォルトの名無しさん:2013/10/07(月) 18:37:28.62
x86が欠陥だから
.NETのようなVM的なものが出来るんだよ

いい加減に優れた命令セットを持つCPUが開発されるべき
325デフォルトの名無しさん:2013/10/07(月) 19:01:55.42
やっぱりVBerって頭悪い奴ばっかりなのを再確認したw

7倍も遅くなったのは.NETのせいだ?
いや間違いなくそれはコードがウンコだからだ。
326デフォルトの名無しさん:2013/10/07(月) 19:10:53.16
.NETに不利な条件設定すれば7倍なんてもんじゃ済まないだろ?
一般的な業務アプリの範疇であればそん色ないというだけであって
何を使ったところで機械語より速くなるはずがないという原点に立ち返れやアホ
327デフォルトの名無しさん:2013/10/07(月) 19:12:33.81
.netを使うとx86の命令セットではなくIntel CPUのマイクロコードを直接使うんですよ?
いわゆるCISICではなくRISCに近い性能を発揮するんです。わかりましたか?
328デフォルトの名無しさん:2013/10/07(月) 19:14:14.74
VB6はCOMのマーシャリングを発生させないコードならコード走行性能はC++と同等だからな
329デフォルトの名無しさん:2013/10/07(月) 19:16:19.81
>>325
ウンコでも速いんだよ、VBは。
330デフォルトの名無しさん:2013/10/07(月) 19:22:11.86
一度、メモリダンプとって逆汗して最終的に.NETがどんなコードになるのか見た事があったが
やたらポインタつなぎのコードが多く、アドレッシングモードの使い方も複雑で解読が難しかった。
PUSH,POPを見て単純に関数の入り口と出口を判別できないコードだよ
331デフォルトの名無しさん:2013/10/07(月) 19:44:52.33
馬鹿過ぎて突っ込む気も起こらない
332デフォルトの名無しさん:2013/10/07(月) 19:47:15.87
>>330
最終的なコードが人の目から見て見やすいかどうかは問題ではないのでは?
333デフォルトの名無しさん:2013/10/07(月) 20:47:23.05
不要な間接アドレッシング満載で遅くてもしかたないだろって事だろ?
最低限の洞察力も無いようでは.net氏ねと言われても仕方ないだろうよ?
334デフォルトの名無しさん:2013/10/07(月) 20:48:36.06
VS2010入れてVB.NETをちょろっとやってみたけど
VB6と全然違いすぎてちんぷんかんぷんだ・・・ゼロから勉強しないとダメだこりゃ
しかたないからずっとVB6使いつづけます
335デフォルトの名無しさん:2013/10/07(月) 20:51:59.98
ぜひそうしてくれ
336デフォルトの名無しさん:2013/10/07(月) 21:54:09.82
VB6のネイティブコンパイルはVC++6の2パス目とLINKを使ってるのは確かだけど
ステップごとにサポートルーチン呼びまくってるから
Cほどのパフォーマンスは出てない
単純な四則演算ではCを10とすると、おおよそVB6が6、VB.NETが8くらいのスピードになる
VB.NETの場合起動して動き出すまでが重いから、
exeの起動から終了までを入れて測定するとVB6と逆転することも多いけどね
337デフォルトの名無しさん:2013/10/07(月) 22:05:59.93
>>324
IA64?
338デフォルトの名無しさん:2013/10/07(月) 22:12:49.07
64bitのOSはトラブル続きという、x86以下のクズCPU
339デフォルトの名無しさん:2013/10/07(月) 22:42:55.77
>>336
遅くなる要因もあるんでしょ?
340デフォルトの名無しさん:2013/10/07(月) 23:14:00.78
>>336
つまり単純な四則演算だとVB6より.NETが早いのか?
341デフォルトの名無しさん:2013/10/07(月) 23:21:45.10
単純な四則演算だけで済むアプリってどんなアプリだ?
342デフォルトの名無しさん:2013/10/07(月) 23:22:30.43
>ベンチマークテストでは速くなるような仕込みがあるから

四則演算だけやったってことか
343デフォルトの名無しさん:2013/10/08(火) 00:26:02.32
>>314
それしか方法がなければそうするけど、他に効率のいい方策があるのに
わざわざ面倒くさい方法をとる意味がないと思いません?
とにかく作業効率と採算性が重要なんだし。
344デフォルトの名無しさん:2013/10/08(火) 15:44:46.01
VB vs Delphi 的な感じの時期があったろ
正直待った時期もあったが.NETの登場でDelphi逝ったーー!! とか思ってた
蓋を開けれ.NETの中核的な言語のC#ってのは
Delphiを設計した奴が引きぬかれて作ったらしい
それどころか、VB.NETになり、これがVBなのか?と思えるほど面倒になった
結果的にVB6も逝ってたと気がつくまでに5年かかった
これからも死ぬまでよろしくなVB6
345デフォルトの名無しさん:2013/10/08(火) 16:29:24.00
C#はヘジたん萌え言語
346デフォルトの名無しさん:2013/10/08(火) 21:21:27.43
うちの会社はソース以外何も残っていないことが多いからなあ。
どのモジュールで何の処理をしているのか、調べるのも大変だ。
347デフォルトの名無しさん:2013/10/08(火) 21:36:50.41
ソースがあるのに何と言う贅沢を
348デフォルトの名無しさん:2013/10/08(火) 22:02:27.46
>>347
普通は仕様書とか詳細設計書なんてのが残ってるのではないの?
349デフォルトの名無しさん:2013/10/08(火) 22:07:30.28
>>348
仕様書、詳細設計書はアップデートしないから実態と合わない
350デフォルトの名無しさん:2013/10/08(火) 22:13:00.29
>>340
ばーか、騙されるなよ
単純な四則演算ではCを10とすると、おおよそVB6が6、VB.NETが8くらいのスピード・・・

どうみてもアホ丸出しだろw
351デフォルトの名無しさん:2013/10/08(火) 22:16:37.73
>>350
「ステップごとにサポートルーチン呼びまくってる」

この表現はもっともらしくていいじゃん?
何か行番号が付いている昔のBASICでステップでデバッグしていた頃のニュアンスだよな
ナツカシスwwww
352デフォルトの名無しさん:2013/10/08(火) 22:19:05.81
VB6はOLEAUTOを呼び出すと極端に遅くなるからベンチで比較するなら単純演算にすべし
Stringなんて使った日にはトップギヤからローギヤにぶち込んだくらいのエンブレがかかる
353デフォルトの名無しさん:2013/10/08(火) 22:21:23.55
>>351
>「ステップごとにサポートルーチン呼びまくってる」

それは中間言語レベルの話で速度優先で最適化してビルドしてEXE化すればほとんど関係しない
354デフォルトの名無しさん:2013/10/08(火) 22:27:59.81
ここは脳内VBの巣窟ですか
355デフォルトの名無しさん:2013/10/09(水) 00:24:59.11
VBだけじゃ何のVBかわからんだろ?この新参がw
356デフォルトの名無しさん:2013/10/09(水) 00:27:49.59
Virtual Box
357336:2013/10/09(水) 02:57:48.18
ソースや数値を出さずに遅い速い言ってもしかたがないので、
根拠にしたプログラムソースを挙げとくよ

特に意味のある処理はしてなくて配列に乱数セットした後、足したりかけたり
http://ideone.com/bTdS3u
http://ideone.com/7z8liH
VB6はForm1にButton1とTextBox1を貼り付けてClickイベント
VB.NETはコンソールアプリ

VB2005のとき評価用に作ったものなので数値が古いけど結果は次のとおり
VB.NET 3.14秒
VB6 5.50秒
VB6(p-code) 101.5秒
C++ 3.0秒
C++ (/arch:SSE2) 2.2秒
358デフォルトの名無しさん:2013/10/09(水) 03:04:01.43
VB.NETもGUIでやれよ、なんでコンソールなんだよ
359デフォルトの名無しさん:2013/10/09(水) 09:12:19.94
>>357
VB6って意外に速いんだね。道理で長い間使われ続けている訳だ。
360デフォルトの名無しさん:2013/10/09(水) 09:15:43.34
>VB6はForm1にButton1とTextBox1を貼り付けてClickイベント

ここまでVB6に不利な条件を用意しないと歴然とした差が出ないんだね
藪蛇だったなwww
361デフォルトの名無しさん:2013/10/09(水) 09:17:07.18
>VB6(p-code) 101.5秒

.netはすべてJITコンパイル後の結果だけ提示しているのにVB6だけp-codeの時間載せてら(笑)
362デフォルトの名無しさん:2013/10/09(水) 09:18:51.50
VB6のコンパイル時の最適化って、現状どのオプションを有効にするのが最も効果的ですか?
363デフォルトの名無しさん:2013/10/09(水) 10:22:37.27
>>357
二つ目のForループをコメントアウトするとどちらも瞬時に終わってしまう。
計測結果はほとんどこのForループの時間だろ。
364363:2013/10/09(水) 10:28:32.18
計測初めてから二つ目のな。変数の内容をswapしてるとこ。
365デフォルトの名無しさん:2013/10/09(水) 10:30:43.31
これ配列の入出力が時間のほとんどなんじゃなかろうか
366デフォルトの名無しさん:2013/10/09(水) 10:51:34.28
サーバ交換とかって泣き入れてた奴まだいるかな?
CSVだけを読み込んでDBを更新しないように修正して
サーバとWin7のテスト環境で比較してみてはどうだろうか
367デフォルトの名無しさん:2013/10/09(水) 11:35:12.94
言うだけ無駄だとなぜ学習しない
368デフォルトの名無しさん:2013/10/09(水) 12:19:47.19
>>357
ダメな比較テストだな
どうしてもう少し頭を使えないもか
ゆとり世代?
369デフォルトの名無しさん:2013/10/09(水) 12:20:28.27
>>365
だ罠
370デフォルトの名無しさん:2013/10/09(水) 12:21:35.04
本人は非の打ちどころがない自信満々のソースなので手加減よろしく
371デフォルトの名無しさん:2013/10/09(水) 12:39:39.38
おk
372デフォルトの名無しさん:2013/10/09(水) 13:58:47.81
配列のソートについてはVB.NETの優位が示せたじゃん。
Array.Sort()ならもっと早くなるし。
373デフォルトの名無しさん:2013/10/09(水) 14:06:52.09
そんなレアケースで自慢されましても・・・
374デフォルトの名無しさん:2013/10/09(水) 14:10:36.89
100万行のテキストを加工してファイル出力するプログラムとかで比較してみればいいんじゃね
375デフォルトの名無しさん:2013/10/09(水) 14:18:29.04
それだとほとんど差が出ない、いや、むしろVB6の方が高速だろう
376デフォルトの名無しさん:2013/10/09(水) 18:44:53.80
VB6でのCSV読み込み
@input#
AFileSystemObjectで1行読んできてSplit
Bその他
どれ使ってる?
377デフォルトの名無しさん:2013/10/09(水) 19:08:10.54
Line Input # で1行読んできてSplit
378デフォルトの名無しさん:2013/10/09(水) 19:41:50.86
ダブルクォートの中に,が含まれている場合はSplit使えないよね
379デフォルトの名無しさん:2013/10/09(水) 21:07:17.38
こんなん作ってみた

'Basic_READ_DATA.bas
Dim DataArray() As Variant
Dim ReadIndex As Long
Dim DataCount As Long
Public Sub BASIC_DATA(ParamArray v() As Variant)
 If UBound(v) < LBound(v) Then
  Exit Sub
 End If
 Dim index As Long
 Dim i As Long
 index = DataCount
 DataCount = DataCount + UBound(v) + 1
 ReDim Preserve DataArray(DataCount)
 For i = LBound(v) To UBound(v)
  DataArray(index + i) = v(i)
 Next i
End Sub
Public Sub BASIC_READ(ParamArray v() As Variant)
 If UBound(v) < LBound(v) Then
  Exit Sub
 End If
 Dim i As Long
 For i = LBound(v) To UBound(v)
  If ReadIndex >= DataCount Then
   Exit Sub
  End If
  v(i) = DataArray(ReadIndex)
  ReadIndex = ReadIndex + 1
 Next i
End Sub
380デフォルトの名無しさん:2013/10/09(水) 21:12:57.80
古いBASICにあるREADとDATAを作ってみました
381デフォルトの名無しさん:2013/10/09(水) 21:14:44.53
テストコード


Private Type xy
 x As Integer
 y As Integer
End Type

Dim xymap(3) As xy

Sub Init()
 
 BASIC_DATA -2, 0
 BASIC_DATA 2, 0
 BASIC_DATA 0, -2
 BASIC_DATA 0, 2
 
 Dim i As Integer
 
 For i = 0 To 3
  BASIC_READ xymap(i).x, xymap(i).y
 Next i

End Sub
382デフォルトの名無しさん:2013/10/09(水) 22:27:42.41
古いBASICみたいにPOINTが扱えないのかVB6は、座標がSingle型だから不正確なのか・・・
383デフォルトの名無しさん:2013/10/09(水) 22:32:48.04
は?
384デフォルトの名無しさん:2013/10/09(水) 22:35:41.25
windowsのグラフィックスがvolatileだからでないかい
いつ消えるかわからなくて、消えたらWM_PAINTで書き直す
385336:2013/10/09(水) 22:47:14.29
>>363
ご指摘のとおり、昔のソースなんで勘違いしてた
後半の2つのループは最適化除けのためのまじないでした
javaのserver VMだと凶悪な最適化をしてくるので用心した

336の「単純な四則演算では」の部分は撤回

>>359
結論として言いたかったのはソレ
たいした差は無いよってことで、
むしろVB6のほうが起動やFormが軽いので体感ではVB6が速く感じる
386デフォルトの名無しさん:2013/10/10(木) 10:18:34.70
>>385
恥ずかしい奴だな
それに専門学校生の書いたソースじゃあるまいし、、数値はもっと抽象化しろよ
387デフォルトの名無しさん:2013/10/11(金) 17:33:00.14
今さらvb5.0の修正対応が発生したんだけど、そもそも環境ない…
IDE今さら見つかるわけでもなく、眠ってた保守端末を復旧させることになりそう
388デフォルトの名無しさん:2013/10/11(金) 18:02:01.15
>>387
消費税増税対応か?
389デフォルトの名無しさん:2013/10/11(金) 19:02:56.72
MSDNになかったっけ?あれは6.0かな
390ななし:2013/10/11(金) 20:10:53.30
そもそも5.0とか使った覚えがないぞ
4から6だったからなぁ
391デフォルトの名無しさん:2013/10/11(金) 20:18:20.53
>>388
消費税増税に伴うVB業務ソフトの使用変更案件が既に8件来てる
若い奴らはVB5やVB6は出来ないので俺がやるしかない
今更あの原始時代的な言語仕様に立ち返るなんて一種の拷問だよ!
クラスの実装継承ができないとか多態性が無理とか信じられんし
392デフォルトの名無しさん:2013/10/11(金) 22:06:12.01
そういいつつ嬉しそうなのはなんでだ。
393デフォルトの名無しさん:2013/10/11(金) 22:12:06.18
いやーー(^^;)
394デフォルトの名無しさん:2013/10/12(土) 09:09:18.51
>>388
よくわかったね…
もう泣きそうだわ
395デフォルトの名無しさん:2013/10/12(土) 10:14:55.45
Aさんの成績が100人中30位だとします。
100人を2グループに分けるとAさんは第1グループに属します。
100人を4グループに分けるとAさんは第2グループに属します。

という感じの関数作りたいんです。
Getグループ番号(成績, 人数, グループ数)

数学に詳しい方お助けを。
396デフォルトの名無しさん:2013/10/12(土) 10:34:11.76
同点の具合によってはズレそうだが?
397395:2013/10/12(土) 10:56:11.74
できちゃった。

Public Function GetRankGroup(lngRank As Long, lngMembers As Long, lngGroupCnt As Long) As Long
  Dim lngGroupLimit As Long
  Dim i As Long
  Dim lngGroup As Long
  
  lngGroupLimit = lngMembers / lngGroupCnt
  For i = lngGroupLimit To lngMembers Step lngGroupLimit
    lngGroup = lngGroup + 1
    If lngRank <= i Then
      Exit For
    End If
  Next
  GetRankGroup = lngGroup
End Function

>>396
想定してたのは同点とかないものでした。
上の例だと同点も考慮しないとダメでしたね。すんません。
398395:2013/10/12(土) 11:12:09.86
修正
Public Function GetRankGroup(lngRank As Long, lngMembers As Long, lngGroupCnt As Long) As Long
  Dim lngGroupLimit As Long
  Dim i As Long
  Dim lngGroup As Long
 
  lngGroupLimit = lngMembers / lngGroupCnt
  For i = lngGroupLimit To lngMembers Step lngGroupLimit
    lngGroup = lngGroup + 1
    If lngRank <= i Then
      Exit For
    End If
  Next
  If i > lngMembers Then
    lngGroup = lngGroup + 1
  End If
  GetRankGroup = lngGroup
End Function
399デフォルトの名無しさん:2013/10/12(土) 11:27:32.82
>>395
Function GetRankGroup(a, b, c)
 GetRankGroup = Roundup(a * c / b)
End Function

Function Roundup(a)
 b = Fix(a)
 If a - b = 0 Then
  Roundup = b
 Else
  Roundup = b + 1
 End If
End Function
400デフォルトの名無しさん:2013/10/12(土) 11:52:27.56
>>395
VB6で宿題かい?
100人を3グループに分けたら
最下位の人は孤独な第4グループでカワイソス?
401デフォルトの名無しさん:2013/10/12(土) 15:58:19.09
順位だけでのグループ分けとかワロエルな
402デフォルトの名無しさん:2013/10/13(日) 08:36:44.09
なんかどんどんできるようになってきてるよ
403デフォルトの名無しさん:2013/10/13(日) 17:56:14.00
>>391
VB6でもインターフェイスはあるから多態性はどうにかなるんじゃね?
消費税対応程度でそこまでやるかという気はするけどねw
404デフォルトの名無しさん:2013/10/15(火) 12:25:37.59
VB6の場合、ステップごとにサポートルーティンが組み込まれるため
Cコンパイラによってコンパイルされたバイナリの性能はCと同じ速度にはならないよ
もし出来るだけC言語で作ったコードの性能に近づけたかったら
なるべく同じ行内で処理をまとめることだよ。
例えば「:」でステートメントを連結するとコードは読みにくくなるが
バイナリレベルでサポートルーティンが入らなくなるので実行性能は向上する。
VBDecompilerで確認したから間違いない。
405デフォルトの名無しさん:2013/10/15(火) 17:23:22.39
VB6で作ったアプリってオープンソースで公開しても大丈夫なん?規約書どっかいっちゃって分からんのよ
406デフォルトの名無しさん:2013/10/15(火) 20:36:35.74
>>404
A = 10
B = 20
より
A = 10:B = 20
の方が早いってか?
この程度なら同じバイナリ吐くんじゃないかと思うんだが
そんなにVBコンパイラのオプティマイザ貧弱なのか
407デフォルトの名無しさん:2013/10/15(火) 20:53:58.70
>>406
気になってVB Decompiler 7でマルチ、非マルチの単純コードを逆コンパイルして比較してみたが
明らかに間に余計なサブが入るか入らないかの差が出ているな
昔ながらのマルチで若干速度アップというBasicの悪癖はVB6でも継承しているということかい?
408デフォルトの名無しさん:2013/10/15(火) 20:55:15.33
>>405
逆に大丈夫でないとするならその理由を知りたいものだな
409デフォルトの名無しさん:2013/10/15(火) 21:35:52.09
コントロールに再頒布に関するうんぬんが書いてなかったっけ?
410デフォルトの名無しさん:2013/10/15(火) 21:40:36.85
コロンで結ぶ奴は、アレか?IF文用か?
411デフォルトの名無しさん:2013/10/15(火) 21:42:53.13
>>409
コントロールはバイナリなんだから
オープン”ソース”と関係ないじゃん
412デフォルトの名無しさん:2013/10/15(火) 21:58:59.87
つまりソースコードのみなら縛りはないけど
ビルドしたものも含めての配布は出来ないってこと
413デフォルトの名無しさん:2013/10/15(火) 22:05:51.38
ソースとして配布される物から全てビルドできないとオープンソースと言えないからVB6ランタイムとか含めて配布は出来ない
414デフォルトの名無しさん:2013/10/15(火) 22:06:59.17
つまりビルドして出来たexeだけなら配布できるけど依存するdllやらocxやらは含められない
415デフォルトの名無しさん:2013/10/15(火) 22:10:32.95
ソースコードだけ公開ならオープンソース
416デフォルトの名無しさん:2013/10/15(火) 22:55:26.33
GPLはダメってことです
417デフォルトの名無しさん:2013/10/15(火) 23:01:40.96
Windows APIを使っているものは
オープンソースに出来ない。

これはクロスプラットフォーム
アプリでも同じである。
418デフォルトの名無しさん:2013/10/15(火) 23:02:48.09
iOSアプリもオープンソースにできない。
419デフォルトの名無しさん:2013/10/15(火) 23:04:16.96
Windows APIを使ってるOpenOfficeはどうなるのっと
420デフォルトの名無しさん:2013/10/15(火) 23:10:27.43
Windows APIなしでWindowsアプリは作れないんじゃないの?
CUIだろうがGUIだろうがWindowsの実行形式exeにはdllアクセスがあるじゃん
421デフォルトの名無しさん:2013/10/15(火) 23:10:35.18
それじゃ、VB6で作ったアプリはフリーソフトとして頒布できないのでは?
VB6ランタイムを含む再頒布可能なコンポーネントと一緒にEXEを頒布できないとか?
オープンソースとバイナリの頒布は次元が違う問題だろ?
422デフォルトの名無しさん:2013/10/15(火) 23:14:09.16
もうVBと関係ない話題じゃね?

ようはこういうことでしょ?

OSもしくは使用しているライブラリが
オープンソースではない場合、
それを使っているソフトは
オープンソースできるのかどうか?
423デフォルトの名無しさん:2013/10/15(火) 23:14:39.63
ソースコード含めてのただのフリーソフトとして配布すること自体は問題ないだろ

「オープンソース」の定義 ( http://www.opensource.jp/osd/osd-japanese.html ) に当てはまるような公開ができないだけで
424デフォルトの名無しさん:2013/10/15(火) 23:17:05.08
>>421
VB6.0に付属しているActiveXコントロールはVB6.0で作成したプログラムと一緒なら再配布することができます。
つまりVB6.0のプログラムと一緒に配布しないケースは禁止されています。
425デフォルトの名無しさん:2013/10/15(火) 23:17:32.02
「オープンソース」には定義があって
ただソースコードを公開することが「オープンソース」という意味じゃない
VB6でディストリビューションウィザードで作ったインストーラにソースコード含めて配布することは可能だが
それを「オープンソース・ソフトウェア」だとと呼称することが許されないだけ
426デフォルトの名無しさん:2013/10/15(火) 23:18:21.80
ActiveXとか動的リンクになるので、
GPLでよく話題になってる、
動的リンクでもGPL感染するのか?って
話と同じ気がする。
427デフォルトの名無しさん:2013/10/15(火) 23:22:51.60
Windows APIがアウトならWindowsでは拡張子comの実行形式以外はオープンソース化無理だね
428デフォルトの名無しさん:2013/10/15(火) 23:24:32.16
>>423
VB6は

  「8. 特定製品でのみ有効なライセンスの禁止」

に抵触するからどうあがいてもオープンソースは無理だね
429デフォルトの名無しさん:2013/10/15(火) 23:24:43.40
WINEで動けば、オープンソースになるよ。
430デフォルトの名無しさん:2013/10/15(火) 23:25:44.46
>>428
ねえ、さっきからお前何必死になってるの?

Windowsアプリはオープンソースに出来るのかとか
動的リンクの場合はどうなるのかとか
そういう話でしょ?
431デフォルトの名無しさん:2013/10/15(火) 23:26:05.08
>特定製品でのみ有効なライセンスの禁止
linuxで動くがwindowsで動かないものはオープンソースにならんじゃないか
432デフォルトの名無しさん:2013/10/15(火) 23:26:34.63
>>430
おまえは一体誰と戦っているんだ?
433デフォルトの名無しさん:2013/10/15(火) 23:27:08.03
VBの場合、ソースコードリンクじゃない
ライブラリは、すべて動的リンクになるから
アプリそのもののソースが公開されていれば
オープンソースでいいんじゃないの?
434デフォルトの名無しさん:2013/10/15(火) 23:27:41.11
>>432
お前♪
435デフォルトの名無しさん:2013/10/15(火) 23:27:51.25
>>431
いや、VB6で開発したEXEと一緒でないと頒布権が与えられないという時点でアウトでしょ?
436デフォルトの名無しさん:2013/10/15(火) 23:28:33.80
>>435
それは外部ライブラリ扱いだから、
無視してOK
437デフォルトの名無しさん:2013/10/15(火) 23:29:06.38
>>434
俺か?wwwwwww
 
 
 
 
438デフォルトの名無しさん:2013/10/15(火) 23:29:21.91
そもそも、「オープンソース」に実行ファイルを含めて配布しないといけない決まりはない。
ソースコードがオープンであれば、実行ファイルの有無は関係ない。
439デフォルトの名無しさん:2013/10/15(火) 23:31:08.26
>>436
テキストファイルの範疇であればオープンソース化は可能という事かな?
DLLやOCXがないと機能しないが・・・
440デフォルトの名無しさん:2013/10/15(火) 23:31:29.11
OSS OK
・ソースコードのみ公開・配布
・ソースコードとコンパイルしたexeのみ公開・配布

OSS NG
・VB6のランタイムライブラリなどオープンソースでないライブラリを付けての公開・配布
441デフォルトの名無しさん:2013/10/15(火) 23:31:35.13
そうだよな。ソースコードだけで公開しているアプリとかあるしな。
ビルドは勝手にしてくださいという形で。
442デフォルトの名無しさん:2013/10/15(火) 23:34:40.11
オープンソースの定義下での公開を諦めればOK

ただのフリーソフトとしての公開すればいい、ソースコードを添付すればソースコードも公開できる
443デフォルトの名無しさん:2013/10/15(火) 23:34:45.22
>>440
>・ソースコードとコンパイルしたexeのみ公開・配布

標準コントロールを一切使わず純粋にVB6のコードだけで作ったアプリなら
Windows 7のようにVB6ランタイムが標準装備のOS下ではオープンソースも機能的に成り立つ罠
444デフォルトの名無しさん:2013/10/15(火) 23:38:13.06
今すぐ使いたいアプリがソースコードのみ公開とかムカつくだけだけどな
linuxとか使っててブチ切れそうになった
445デフォルトの名無しさん:2013/10/15(火) 23:39:56.83
コンパイラが吐きだしたバイナリってコンパイラが機械語で書いたコードなんだから著作権はコンパイラ自身にあるべきだよな
446デフォルトの名無しさん:2013/10/15(火) 23:40:31.51
Linux用のオープンソースアプリがある

それをWindowsで動かそうとする。ライブラリがないから動かない。→ オープンソースじゃないのではないか?

Windowsでもライブラリがあれば動くから、オープンソースなのだ! ★

だったら逆を考えてみよう

Windowsのアプリを、Linuxで動かせれば、オープンソースなのだ!

動かない?

WINE使えば動くよ。→動くならオープンソースでいいよね!

WINEでWindows APIは実装されているけど、それ以外のライブラリは実装されてないよ。

でもオープンソースで互換ライブラリ作れば動くよね?

Linuxでもライブラリがあれば動くから、オープンソースなのだ! (★と同じ)


結局さ、こうなるから、オープンソースかどうかの話をするなら、
OSや汎用的なライブラリは無視して、
アプリ本体だけで考えるべきなんじゃねーの?
447デフォルトの名無しさん:2013/10/15(火) 23:43:06.76
OS固有の機能つかったらオープンソースにならんとか厳しいな
ひとまず言えることは
VB6でオープンソースは諦めろ
448デフォルトの名無しさん:2013/10/15(火) 23:43:51.92
449デフォルトの名無しさん:2013/10/15(火) 23:45:26.42
GPLはオープンソースである。

WindowsアプリでGPLアプリは存在する

ゆえに、Windowsアプリで
オープンソースを作ることは可能である。
450デフォルトの名無しさん:2013/10/15(火) 23:46:18.57
VB6アプリでEXEだけポツンとあっても意味成さないケースがほとんどじゃね?
そんなEXEがソースファイルと一緒に頒布されましてもねぇ・・・・
451デフォルトの名無しさん:2013/10/15(火) 23:47:32.86
GPLアプリを作ったとしても、そのGPLの効力が
OSや外部ライブラリに及ばないと同様に、
オープンソースに関して、OSや外部ライブラリの
ライセンスは関係ない。
452デフォルトの名無しさん:2013/10/15(火) 23:47:46.12
>>449
それはGPLのコンパイラやライブラリを使った場合とか非常にニッチな条件下だけだよね?
453デフォルトの名無しさん:2013/10/15(火) 23:48:03.10
>>450
動作に関して意味があるかどうかではなく、
オープンソースであるかどうかが焦点ですよ。
454デフォルトの名無しさん:2013/10/15(火) 23:48:51.79
455デフォルトの名無しさん:2013/10/15(火) 23:49:53.63
>>453
そういう意味のないオープンソースを広めた連中がオープンソースを弱体化させた訳だが?
456デフォルトの名無しさん:2013/10/15(火) 23:52:05.02
>>452
オープンソースのアプリがあったとして、

それをどのOSで動かそうが、
どのコンパイラでコンパイルしようが
どのライブラリと動的リンクしようが、

オープンソースのアプリは、オープンソースのままですよ。

あたりまえじゃないですか。
なんで、オープンソースのアプリが、
アプリとは無関係のものに変えられてしまうと思うの?
457デフォルトの名無しさん:2013/10/15(火) 23:54:29.57
>>450
そんなことオープンソースでlinux用のバイナリしか配布してないとこにだって同じこと言えるじゃん
458デフォルトの名無しさん:2013/10/15(火) 23:57:20.90
そもそも、オープンソースにバイナリの生成や、
動作保証は義務付けられていないので、
たとえそれがビルドできない状態であったとしても
ソースがあるのならそれはオープンソースである。
459デフォルトの名無しさん:2013/10/16(水) 00:00:06.03
オープンソース ≠ GPL
460デフォルトの名無しさん:2013/10/16(水) 00:06:14.28
オープンソース ⊃ GPL
461デフォルトの名無しさん:2013/10/16(水) 00:10:39.44
ソースの公開 ≠ オープンソース
ソースの公開 ⊂ オープンソース
462デフォルトの名無しさん:2013/10/16(水) 00:11:50.68
逆だた
ソースの公開 ≠ オープンソース
ソースの公開 ⊃ オープンソース

オープンソースはオープンソースのルールに従ってソースを公開することだよ
463デフォルトの名無しさん:2013/10/16(水) 00:14:39.00
ソースコードはオープンソースライセンスで
バイナリ込みのインストーラは別ライセンスで配布って可能なのか?

つかVB6のディストリビューションウィザードで作ったインストーラは配布可能でも
インストーラ自体のライセンスがオープンソースじゃないからオープンソースでの配布は無理だろうな
464デフォルトの名無しさん:2013/10/16(水) 00:18:24.43
>>462
> オープンソースはオープンソースのルールに従ってソースを公開することだよ

その、オープンソースのルールに
バイナリを一緒に配布することとか
バイナリを生成できること
なんて決まりがないんだよな。

それは当たり前の話で
例えば特定の環境でビルドできても
その他の環境でビルドできないことがある。

すべての環境でビルドできないとしたら、
大きく環境違う場合でもでもビルドできないといけないということになる。
だからビルドできることを条件にすることができないわけ。
465デフォルトの名無しさん:2013/10/16(水) 00:21:51.44
Inno Setupというインストーラー作成ソフトはオープンソースだよ
466デフォルトの名無しさん:2013/10/16(水) 00:22:27.95
VB6のアプリをライブラリとか全部詰めてインストーラで配布する場合
同梱するライブラリの制限についてしっかり明記しないとアカンよ
一番簡単なのは同梱されるいかなるファイルの再配布も禁止するとか
467デフォルトの名無しさん:2013/10/16(水) 00:23:40.78
>>466
単に一緒に頒布されるというだけならば他のソフトウェアには影響しません。

http://www.opensource.jp/osd/osd-japanese.html
9. 他のソフトウェアを制限するライセンスの禁止

ライセンスはそのソフトウェアと共に頒布される他のソフトウェアに制限 を設けてはなりません。
例えば、ライセンスは同じ媒体で頒布される他のプロ グラムが全てオープンソースソフトウェアであることを要求してはなりません。

理由: オープンソースなソフトウェアの頒布者には、
彼ら自身 のソフトウェアについては彼ら自身で選択する権利があります。

もちろんGPLはこの要件を満たしています。GPLが適用されたライブラリとリンクされたソフトウェアは、
それが単一の著作物を形成する場合のみ GPLを継承するのであって、単に一緒に頒布されるというだけならば他のソフ トウェアには影響しません。
468デフォルトの名無しさん:2013/10/16(水) 00:26:00.54
>>466
リンクしなければ、たとえ同じインストーラーに
パッケージしたって関係ないんだよ。

同じzipにオープンソースなものと
そうでないのを一緒にまとめて配布するのと同じことだし、

同じDVDにオープンソースなものと
そうでないのを一緒にまとめて配布するのと同じ。
469デフォルトの名無しさん:2013/10/16(水) 00:29:26.83
>>463
> つかVB6のディストリビューションウィザードで作ったインストーラは配布可能でも
> インストーラ自体のライセンスがオープンソースじゃないからオープンソースでの配布は無理だろうな

それは基本的すぎることで、
問題ないとはっきり明確になってる。

http://www.gnu.org/licenses/gpl-faq.ja.html#CanIUseGPLToolsForNF.
自由でないプログラムを開発するために、GNU EmacsのようなGPLの及ぶエディタを使っても良いでしょうか?
GCCのようなGPLの及ぶツールを使って自由でないプログラムをコンパイルすることはできますか? (#CanIUseGPLToolsForNF)

はい、なぜならばエディタやツールの著作権はあなたが書くコードには影響しないからです。
法的には、あなたがどんなツールを使っても、あなたがご自分のコードに適用するライセンスに関しては何の制限も課されません。

プログラムによっては、技術的な都合から自身の一部を出力結果にコピーするものがあります。
たとえば、Bisonは標準パーザ・プログラムを出力ファイルにコピーします。そのような場合、
出力結果にコピーされたテキストはそのソースコードに及ぶものと同じライセンスによってライセンスされます。
一方、プログラムに与えられた入力から派生した出力結果の一部は入力側の著作権状態を継承します。

たまたま、Bisonは自由でないプログラムを開発するのにも使うことができます。
これは、わたしたちがBisonの出力結果に含まれるBisonの標準パーザ・プログラムは制限なしに
利用できるということを明確に認めることを決定したからです。わたしたちがこう決めたのは、
Bisonと同様の他のツールで自由でないプログラムでの利用を認めているものがすでに存在したからです。
470デフォルトの名無しさん:2013/10/16(水) 00:33:06.55
MSがVSで作ったものをオープンソースとして公開することを禁止してるかもしれんしMSに問い合わせたほうが早い
471デフォルトの名無しさん:2013/10/16(水) 00:39:40.59
>>449
ライセンスを明言して配布してるからといって
必ずしもライセンスに準拠して配布しているものばかりというわけじゃない
配布者が気づいてないだけでライセンス違反に抵触してるものもままある
472デフォルトの名無しさん:2013/10/16(水) 00:48:50.46
>>467-468
それは同梱ファイルがオープンソースライセンスの場合にそのライセンスの種類を勝手に変えてはいけないって話じゃ?
オープンラインセンスで配布するなら同梱物にプロプライエタリの物含めたらアウトやろ
473デフォルトの名無しさん:2013/10/16(水) 00:54:46.42
GNU準拠のDebianだとプロプライエタリな物に依存するアプリはパッケージとして登録できない
474デフォルトの名無しさん:2013/10/16(水) 00:55:57.67
>>471
GPLを派生して作ったものは必ずGPLになる。

GPLアプリが、OSや外部ライブラリまでGPLを要求する必要があるならば
それはWindows用のGPLアプリは、一つ残らず存在しないということになる。

だが未だかつて、Windows用のGPLアプリは、
全てライセンス違反であるという話は存在しない。

したがって、Windows用のGPLアプリというのは成り立つし、
OSや外部ライブラリまでGPLである必要がないのも必然である。
475デフォルトの名無しさん:2013/10/16(水) 00:56:36.81
>>473
全く関係ない話でワロタw
476デフォルトの名無しさん:2013/10/16(水) 01:00:44.32
>>472
オープンラインセンスが関係有るのは
バイナリとそのソースの話であって、
配布ファイルに関しては一切関係ない。

例えば、MacOSXにはオープンソース由来のプログラムが
いくつか含まれているが、DVDのすべてがオープンなわけではない。

オープンなものと、オープンでないものを一緒に配布しても良い。
一緒に配布したもののうち、オープンなものだけがオープンってだけの話。
477デフォルトの名無しさん:2013/10/16(水) 01:04:36.79
VB6はアウト


【License】ライセンス総合【利用許諾】
http://toro.2ch.net/test/read.cgi/tech/1266247461/522-523

522 名前:デフォルトの名無しさん[sage] 投稿日:2013/09/10(火) 00:37:03.16
すいません、GPLにプロプライエタリのコードを追加して、プロプライエタリのライセンス購入済みの特定のエンドユーザー様にソース込みで配布することは問題ないでしょうか?
プロプライエタリにGPLを混ぜて問題になることは良くあると思うんですが、逆の場合、プロプライエタリ側の機密事項の違反にならないかと考えています。

523 名前:デフォルトの名無しさん[sage] 投稿日:2013/09/10(火) 01:08:45.55
>>522
プロプライエタリにGPL混ぜるのも、GPLにプロプライエタリ混ぜるのも結果は同じ。
どっちが主か従かも関係ない。
ユーザに配布する際、GPLに従ってプロプライエタリ側のソースも提供する必要がある。
プロプライエタリのコードというのはソースが無い場合が多いし、改造や再配布を禁じる場合がほとんど。

よって結論は「問題アリ」。
478デフォルトの名無しさん:2013/10/16(水) 01:09:00.76
MS謹製のランタイムライブラリとか含めてオープンソースソフトウェアとして配布してMSから訴えられても知らんぞ俺は
479デフォルトの名無しさん:2013/10/16(水) 01:10:32.96
>>477
全くお前が理解してなくてワロタw

全然関係ないじゃん。

GPLにプロプライエタリのコードを
追加しない前提の話しかしてないのにさ。
480デフォルトの名無しさん:2013/10/16(水) 01:13:29.28
>>478
GPLはソースコードレベルのリンクの話であって
動的リンクに関しては、なんの問題もないんだよ。

でないと、Linux(GPL)のライブラリに動的リンクする
アプリが困るだろう?
481デフォルトの名無しさん:2013/10/16(水) 01:13:42.18
VB6でどうしてもオープンソースしたいならソースコード公開だけに留めておけよ
482デフォルトの名無しさん:2013/10/16(水) 01:15:22.85
ライセンスの問題は著作権に詳しい法律の専門家と相談しながら決めるもんだ
素人が勝手に考えてやると痛い目にあうよ
483デフォルトの名無しさん:2013/10/16(水) 01:15:30.40
オープンソースなものと、オープンソースでないものを
一緒のDVDで配布してもOKだよ。
484デフォルトの名無しさん:2013/10/16(水) 01:20:35.39
>リンクしなければ、たとえ同じインストーラーに
>パッケージしたって関係ないんだよ。

つまりVB6で作ったアプリなのに同梱のVB6ランタイムとはリンクしてはならないという縛り
485デフォルトの名無しさん:2013/10/16(水) 01:43:06.74
>>484
ちゃんと区別出来てるか?

オープンソースの話と
VBの規約は別だぞ。
486デフォルトの名無しさん:2013/10/16(水) 01:50:22.08
VB6のランタイムライブラリとかはプロプライエタリだろ?同梱したらオープンソースの一部として配布はいかんよ
487デフォルトの名無しさん:2013/10/16(水) 01:54:11.38
この話はやめにしよ
もうVB6は関係なくなってきてるし
>>405はライセンスの質問したいなら>>477へGO
488デフォルトの名無しさん:2013/10/16(水) 02:05:16.29
>>486
誰が同梱したら配布したらいけないって言ってるんだ?
静的リンクやソースコードの修正をするわけじゃないだろ。

同梱して配布って要するにDVDに入れて
配布するのと何も変わらんぞ。

勝手にルールを作るんじゃないよ。
489デフォルトの名無しさん:2013/10/16(水) 02:10:16.00
自作アプリにソースコードとVB6ランタイムの同梱してのフリーソフトウェアとしての配布がいけないなんて誰も言ってないぞ
ただそれを「オープンソースソフトウェア」と称して配布するのが誤解を招くからやめろと言ってるだけだぞ
VB6ランタイムはプロプライエタリだからそれを含めたらオープンソースにはならんからな
オープンソースとは異なる自分独自のライセンス表示すればいい
490デフォルトの名無しさん:2013/10/16(水) 02:17:14.75
誤解してるのはお前だけじゃね?

同梱して配布してもオープンソースでなんの問題もない。

それを勘違いしているのはお前だけだ。
いい加減黙れよ。
491デフォルトの名無しさん:2013/10/16(水) 03:28:18.26
全員に告ぐ。ライセンスの話題をこれ以上続けたいのなら専用のスレに行け

【License】ライセンス総合【利用許諾】
http://toro.2ch.net/test/read.cgi/tech/1266247461/
492デフォルトの名無しさん:2013/10/16(水) 10:26:48.31
>>490
お前いったい誰と戦っているんだ?w
493デフォルトの名無しさん:2013/10/16(水) 11:26:40.62
間違ってる人を見ると黙ってはいられないタチなんだろ
494デフォルトの名無しさん:2013/10/16(水) 15:52:03.64
言いだしっぺの人は単純にVB6ソースコードのファイル頒布をオープンソースと称せないかという質問だったように思うが。
結論として可能ということだよね。

機能するために動的リンクするファイルが必須である場合もソースコードのファイルだけであれば頒布は可能だし
その動的リンクするファイルでさえ、それ自体がオープンライセンスに帰属するものであれば同梱して頒布可能。
但し、少なくともMicrosoftの著作物である以上はオープンソースとして扱う事は不可能である。
また、サードパーティー製であっても頒布ロイヤリティは不要としてもオープンソースとして認めていないのが一般的。
よって、オープンソースとする場合VB6のソースコード意外に頒布可能なのはコンパイルしたEXEや自作の
OCX、DLL等外部リンクするファイルくらいであるのが現実的解釈ということ。
495デフォルトの名無しさん:2013/10/16(水) 17:00:25.46
今更VB6のソースとかばら撒くとか意味あるのかねえ
496デフォルトの名無しさん:2013/10/16(水) 17:15:28.50
しかし冗談だと思っていたけど、Windows Azure SQL データベースはVB6からは完全に使えなくされたんだね。
OLEDBが廃止されたけどODBCが使えるというのでSQL Server Native Client から
MSDASQL (Microsoft OLE DB Provider for ODBC)が使えると思ったけどサポートされないらしい。
というか、SQL Server ODBC ドライバーがAzure でサポートされないという事態になっている。

結局ADO.netを使うしか道は残されておらず、Azure全盛となるまでに否応なしに.netへ移行しないとまずいね。
まあ今時、.netバージンでVB6しか組めないような人もいないとは思うけど、一応老婆心。
497デフォルトの名無しさん:2013/10/16(水) 21:02:54.97
>>496
Windows 7 SP1でVB6でMdac 6.0を使ったDB接続するプログラムをWindows 7 SP1以前で走らせると
DB接続時にエラーになる問題があったけど、今は修正タイプライブラリで問題が発生しなくなっている
あの時はVB6というか非.netでのADO接続がサポート終了を覚悟したもんだが、Azureはガチっぽいね
498デフォルトの名無しさん:2013/10/17(木) 10:04:49.32
VB6 ヲワタ・・・
499デフォルトの名無しさん:2013/10/18(金) 09:09:41.21
>>498
もう10年前に終わっていますが?
何を今更w
500デフォルトの名無しさん:2013/10/18(金) 09:25:17.08
>>498
VBは統合コンパイラじゃなくて、コンパイラとリンカの分離特化型で進化していけば
まだ使えるのにな!
501デフォルトの名無しさん:2013/10/18(金) 09:37:43.38
VB6がどうたらよりも、VBの.net版の言語仕様があまりに半端すぎる。
VB6から新たにC#を勉強するのと同じくらいの手間がかかる。
少なくともVB6ユーザーが使いたいとは思わないだろうが、一体誰が使っているのだろう?
結局VB6プログラマが.netへの移行をスムーズに行えなかったのは.net版VBの影響が大きいと思う。
502デフォルトの名無しさん:2013/10/18(金) 11:14:42.85
>>501
VB6プログラマの高齢化による思考力低下の影響のほうが大きいだろ
503デフォルトの名無しさん:2013/10/18(金) 11:28:07.18
うちの現場では,NET 1.xは見送って
VB6をNET2.0(VS2005)が出るまで使い続けた
VB6使った期間が長かったんだよね
504デフォルトの名無しさん:2013/10/18(金) 16:13:43.89
>>502
特に20代、若くて頭の足りない年代も色々問題があるどな。
最低限人間としての心遣いができないものかね?
なぜそんなところにボタンを配置する?そのデザインで使う人が使いやすいと思う?
若くてもトータル的に心配りが出来る奴はいるんだけどね。僅かだが。
505デフォルトの名無しさん:2013/10/18(金) 17:23:44.54
旧VBも5あたりまでボロクソ言われてたし
当時の我々も未熟だったし
当時の上司も時代錯誤だったし

歴史は繰り返す
506デフォルトの名無しさん:2013/10/18(金) 21:09:51.61
VB6ユーザーはWindows Azureやばいね
507デフォルトの名無しさん:2013/10/18(金) 21:19:33.05
Windows アバズレ?
508デフォルトの名無しさん:2013/10/18(金) 21:34:08.47
Microsoft Windows Azure - Wikipedia
http://ja.wikipedia.org/wiki/Microsoft_Windows_Azure
509デフォルトの名無しさん:2013/10/20(日) 21:35:39.90
'Class1.cls
Public Sub func()
 Debug.Print "1"
End Sub
'Class2.cls
Public Sub func()
 Debug.Print "2"
End Sub
'Form1.frm
Sub call_func(Object o)
 o.func
End Sub
Sub Form_Load()
 Dim c1 As New Class1
 Dim c2 As New Class2
 call_func c1
 call_func c2
End Sub
同じメソッド名を持つオブジェクトならどんな継承関係になくてもメソッドを呼べるってC++も同じ仕様だったんだな
http://ideone.com/gdhPl6
510デフォルトの名無しさん:2013/10/20(日) 22:26:21.70
templateはマクロみたいなものだし
そりゃできるよ
511デフォルトの名無しさん:2013/10/21(月) 10:24:23.63
代わりに実装継承ができないけどね。
C++はできるけど。
512デフォルトの名無しさん:2013/10/21(月) 10:50:17.25
>>509
C++しらないんだけど、funcメソッドがなかったり引数の型が違ってもビルド通る?
513デフォルトの名無しさん:2013/10/21(月) 15:22:45.57
http://ideone.com/
というサイトは
ソースコードを投稿すると
それをコンパイルして実行した結果を表示してくれるサイトだよ
514509:2013/10/22(火) 10:30:42.14
わりぃ、ソース書き換えてコンパイル通しなおすのめんどくさいからあきらめた。
515デフォルトの名無しさん:2013/10/30(水) 01:52:55.71
プログラム著作権について by 弁理士青木修ウェブサイト
ttp://www.indigobullet.com/info-d/programCopyright.html
>スタティックリンクによるライブラリの使用
>ダイナミックリンクによるライブラリの使用
516デフォルトの名無しさん:2013/10/30(水) 19:47:43.27
コピペマン参上!まで読んだ。
517デフォルトの名無しさん:2013/11/03(日) 14:02:11.89
長年VBやってると自分用のライブラリがたくさんできるでしょ
計算用、ファイル操作用、通信用・・
もう30ファイルくらいできてるのだけど
そのライブラリ同士で引用しあってて
例えば、計算用のライブラリだけ使うつもりが、コンパイルすると
ここが未定義ですとエラーになって、使わないけど足りないライブラリもプロジェクトに含めると
さらにそこから未定義の参照があって・・・

要は実行されないコードは、コンパイラさんだって調べりゃ分かることでしょ
何で無闇に全コードの参照をチェックしてしまうかなぁ
ライブラリの構成が悪いっても、それぞれ独立のコードにするのは無理
ライブラリを小さくすると目的のコードを探すのも大変だし、存在を忘れてしまうし
これを解決するコンパイラオプションてないよね?
518デフォルトの名無しさん:2013/11/03(日) 14:30:50.40
それはライブラリの構成が悪い
519デフォルトの名無しさん:2013/11/03(日) 14:38:34.87
>>517
ライブラリの作りが悪いだけだろ...
520デフォルトの名無しさん:2013/11/03(日) 14:54:05.16
それはコピぺ志向プログラミングだな
521デフォルトの名無しさん:2013/11/03(日) 14:56:50.62
>>517
それはライブラリの分け方が下手なだけ。
522デフォルトの名無しさん:2013/11/03(日) 14:58:01.96
質問に答えない質問スレ
523デフォルトの名無しさん:2013/11/03(日) 15:16:10.96
>>517
無い
524デフォルトの名無しさん:2013/11/03(日) 15:41:20.46
>>522
答えを知ってる人はいないってことでしょ、つまり日本語圏では絶望的
525デフォルトの名無しさん:2013/11/03(日) 15:52:16.97
じゃあ英語圏で探せばいいじゃんwww
526デフォルトの名無しさん:2013/11/03(日) 16:10:15.31
条件コンパイルで
527デフォルトの名無しさん:2013/11/03(日) 18:21:34.56
>>517
なんで、依存関係のあるルーチンを1つのライブラリにしなかったの?
528デフォルトの名無しさん:2013/11/03(日) 20:21:58.15
VB6システム、未だリプレイスせず拡張中
http://kohada.2ch.net/test/read.cgi/prog/1249693483/
529デフォルトの名無しさん:2013/11/03(日) 22:50:50.52
>>527
新規プロジェクトで開発した小さいライブラリなら可能だろうけど
それぞれのライブラリに30〜100個程度の汎用プロシージャが詰め込まれているんです
自分のモージュール内で完結させようとして、引用したい他のライブラリのコードを
自分の中に書いてしまうのも問題ありだよね
ライブラリといっても常に修正が加えられるものだから、同じコードがあっちこっちにあるのはまずい

こういう汎用プロシージャ群の依存関係ってきれいなツリー構造のようにはならない
網目のように絡み合う
そこんとこ、コンパイラの配慮が足りない
530デフォルトの名無しさん:2013/11/03(日) 22:59:54.74
いったいコンパイラになに期待してるんだ?
531デフォルトの名無しさん:2013/11/03(日) 23:19:26.03
>>529
いやさ、完璧にツリー状にならないのは、そんなの当たり前だけどさ。

どのモジュールからも参照される、標準ライブラリと役割が近い準標準ライブラリ系とさ
そのアプリからだけしか使われないロジック系ライブラリとにわければ、
ツリー状にはならなくても循環参照なんて起こりえないんだが。

お前の場合、モジュールの役割ごとで分けてるんじゃなくて、
担当者単位で分けてるから、そういう循環的な依存関係が生まれるんだよ。

どうせ担当者単位で分けてるんだろう?
○さんが作った○○機能のライブラリ、△さんが作った△△機能のライブラリ。
便利だから○さんが△△機能の関数を使いました。
便利だから△さんが○○機能の関数を使いました。
こういう開発してるからおかしくなるんだよ。
532デフォルトの名無しさん:2013/11/03(日) 23:23:44.27
>>529
あとな、お前の作ってるのは汎用関数じゃねーから。
汎用関数ってのは別のプロジェクトでも使える関数だ。

そして関数ではなく、単なるルーチンになってる。
一つのルーチンが受け持つ処理も多い。

どうせ、Get○○By△△みたいな関数ばっかり有るんだろう?
△△の条件から○○を取ってくるみたいな長ったらしい名前の関数。
533デフォルトの名無しさん:2013/11/04(月) 01:13:18.67
>ライブラリといっても常に修正が加えられるものだから
ライブラリじゃねえよ、そんなの
単なるコードスニペットだろ
534デフォルトの名無しさん:2013/11/04(月) 01:31:34.66
option explicitを取り払えばアバウトに動いてくれるんじゃね?
535デフォルトの名無しさん:2013/11/04(月) 02:19:22.32
あまりのレベルの低さに卒倒するけど、それ以前に
10年以上前に死亡宣告されてる言語で議論する話じゃないね。
536デフォルトの名無しさん:2013/11/04(月) 08:57:27.11
ライブラリと考えるからそう思うだけでフレームワークと思えば
全部リンクしてしまえばいいと思う
537デフォルトの名無しさん:2013/11/05(火) 10:03:14.46
なんか休み明けの朝の会議でわかったんだがVB6の超巨大案件がキタよ
最終まで入れると約20億円規模の開発になる
なぜ今頃時代遅れの性能劣化の糞VB6なんだと思ったが
クライアントからの絶対必要条件の一つになってる

おそらく、サーバーサイドに巨大なビジネスロジックのActiveX EXEが中核にあるため
全てをVB6で組まないといけないと頑なに信じている可能性がある
うちの会社でVB6で組める人間は俺とメンヘラの女の子1人しかいない
オブジェクト指向という枠組みで.netアプリケーションの開発環境を知ってしまった人間が
非合理的かつ不完全でメロメロな言語仕様のVB6に下りて来れるはずもなく
こりゃ大変かことになったと朝から大騒ぎですわ
538デフォルトの名無しさん:2013/11/05(火) 10:14:03.13
会社の社会貢献一環として、浮浪者に食事を与えるというボランティアを年に一回行っている
去年の暮れに俺は焼き芋の担当だったんだけど、焼き芋を包む紙がなくて会社で廃棄する紙を使った
ある浮浪者がその包紙を見て、「あああVB6だなこりゃ!懐かしいなあ。昔はよく書いたもんだよ。」
と言ったので色々話を聞いたら、40歳になってすぐ零細ソフト会社でリストラで干されてそれから就職できず
気が付いたら浮浪者になっていたという事だった。

面白そうだったので腕を試してやろうと思って会社に連れてた。部屋中がションベン臭くなって社員から
超ブーイングを受けたが、その浮浪者のプログラマの腕はロジックの完璧さといいコーディングスピードといい半端無かった。
とりあえず仕事をしてみたいというので試用期間3カ月で働かせたものの、今ではC#を使わせたら
社内ナンバーワンのプログラマーと言っても過言ではない状態になった。

浮浪者だからと言って馬鹿にできない。ダイヤはどこに転がっているかわからないよ。
539デフォルトの名無しさん:2013/11/05(火) 10:20:11.10
なんで業務の内容をしかも業務時間中に2ちゃんに嬉々として書き込んでるんだろう
540デフォルトの名無しさん:2013/11/05(火) 11:01:03.85
意見がほしいんじゃね?感想はイラネと
541デフォルトの名無しさん:2013/11/05(火) 13:00:55.07
>>540
うらやましいんだろうよ?
542デフォルトの名無しさん:2013/11/05(火) 15:10:00.22
20億はうらやましいな
VB6は嫌だけどw
543デフォルトの名無しさん:2013/11/05(火) 15:44:09.53
VB6いいよ〜
Win2000/VMwareの中で飼ってるけど、あんなに軽くて使いやすい道具はないわ
544デフォルトの名無しさん:2013/11/08(金) 15:37:15.56
>>538
>焼き芋を包む紙がなくて会社で廃棄する紙を使った
情報流出の危険がある危険な行為だな
545デフォルトの名無しさん:2013/11/08(金) 16:11:07.68
30000+30000
はエラーになる
30000&+30000
でおkだ
546デフォルトの名無しさん:2013/11/08(金) 16:11:37.82
リテラルにはちゃんと型符号をつけないと
547デフォルトの名無しさん:2013/11/08(金) 17:18:05.31
.netはリリースする時のフレームワークのバージョンでいつも悩む
4.5でいいものか?あるいは広範囲に動く3.5あたりが良いのか
さらには2.0まで落とすか・・・

と考えると、最新の機能なんていつまでも使えなくなる.net
その意味ではVB6ってランタイムも単純だしとても恵まれた環境だと思う

しかし時代は.netなので、こんな爺の集まるスレで俺は一体何を書き込んでいるのか
意味不明であるw
548デフォルトの名無しさん:2013/11/08(金) 18:36:20.39
20億あったらおでんが何個食えるかな。
549デフォルトの名無しさん:2013/11/08(金) 21:30:14.28
>>546
For i = 0% to MAXLENGTH -1%

Next


とか書いてるわけ?
550デフォルトの名無しさん:2013/11/08(金) 21:39:52.83
For i% = 0 to MAXLENGTH -1

Next
でおk
551デフォルトの名無しさん:2013/11/08(金) 21:42:19.82
Optionボタンの分岐
Select Case True
 case Option1(0): a=1
 case Option1(1): a=5
 case Option1(2): a=9
End Select
552デフォルトの名無しさん:2013/11/08(金) 22:05:26.82
なんだそのコロン
553デフォルトの名無しさん:2013/11/08(金) 22:16:26.84
>>552
Caseが一行で終始するときに付けるんだよ

いつも思うんだがOptionってONになっているOptionにIndexを返せないんだよな?
Accessはグループ AにあるOption(0)、Option(1)、Option(2)でOption(1)がTrueのとき
Aの値が1になるという便利な機能があった。 
VB6の場合は常にどのOptionがTrueかを順次判別するコードを書かないといけない
Accessに負けてどうすんだっつーのwww
554デフォルトの名無しさん:2013/11/08(金) 22:22:32.89
Option()で複数の要素がTrueになる可能性があるからなぁ。
555デフォルトの名無しさん:2013/11/08(金) 22:34:38.77
>>554
たとえば複数のOptionがコンテナのFrameに入っている時、TrueになるOption要素は1つなのだから
TrueになったOptionのIndexの値がFrameの値にるとか出来なかったのかな?
AccessもVBAになってからは出来るのかどうか知らないけど、以前は使えて便利だったんでそう思った次第
556デフォルトの名無しさん:2013/11/08(金) 22:58:46.89
Sub Option1_Click(Index As Integer)
Option1(0).Tag = Index
End Sub
557デフォルトの名無しさん:2013/11/08(金) 23:25:55.35
>>556
何の解決にもなっていない件
558デフォルトの名無しさん:2013/11/08(金) 23:31:34.40
Select文にコロンつけてやると他の言語のSwitch文に似た感じになってややこしい
559デフォルトの名無しさん:2013/11/09(土) 08:20:35.69
>>555
VB6が用意してくれない以上は自分でつくるよりないなぁ。
コントロール配列じゃないOptionButtonもあるから単純にIndexを返すってわけにはいかないが
560デフォルトの名無しさん:2013/11/09(土) 09:26:22.98
>>555
Sub Option1_Click(Index As Integer)

  Frame1.Tag = Cstr(Index)

End Sub

Private Sub MyTest()

  Select Case Frame1.Tag
    Case "0" : MsgBox "Option(0) が選択された場合の処理です。"
    Case "1" : MsgBox "Option(1) が選択された場合の処理です。" 
    Case "2" : MsgBox "Option(2) が選択された場合の処理です。"  
    Case "3" : MsgBox "Option(3) が選択された場合の処理です。"  
  End Select    

End Sub
561デフォルトの名無しさん:2013/11/09(土) 09:40:25.36
>>551
VB6で10年開発やってたけど、その方法があることに気が付かなかった
目から鱗だわwww


他にも面白業があったら教えてチョンマゲ!
562デフォルトの名無しさん:2013/11/09(土) 09:42:15.95
563デフォルトの名無しさん:2013/11/09(土) 09:45:15.81
意外とって言う割には大したこと無いよね。
C言語ぐらいには勝ってるだけ。
564デフォルトの名無しさん:2013/11/09(土) 09:58:15.87
C言語、カワイソス・・・
565デフォルトの名無しさん:2013/11/09(土) 12:28:59.72
Select CaseのCaseがCのswitchよりも自由でいいじゃん
566デフォルトの名無しさん:2013/11/09(土) 13:39:51.66
>>561
こんな馬鹿な「技」に感心してどうする。
これなら普通にIFで書いた方がストレートで可読的だし記述に必用な行数も縮まる。
要するに、こんなコード書く奴は馬鹿丸出し
567デフォルトの名無しさん:2013/11/09(土) 14:06:19.72
>>565
cのcaseはジャンプテーブルを使った最適化を念頭に置いた仕様になってる。
単純にif-elseifのシノニムの方が機能的には上なんだけど。
568デフォルトの名無しさん:2013/11/09(土) 14:10:12.11
>>567
ジャンプテーブルはVB6でもなる。
いくつか条件はあるだろうけど、
少なくともC言語と同じ使い方をした場合は
きちんとジャンプテーブルになってる。
これは逆アセンブルまでして確認した。
569デフォルトの名無しさん:2013/11/09(土) 15:19:08.36
For Index = Option1.LBound To Option1.UBound
 If Option1(Index).Value Then
  Exit For
 End If
Next Index
MsgBox CStr(Index) & "が選択されました"
570デフォルトの名無しさん:2013/11/09(土) 15:21:17.31
>>569
Indexとんでるとエラーかの
571デフォルトの名無しさん:2013/11/09(土) 15:29:55.47
というわけで少しいじってみた

Dim opt As OptionButton
For Each opt In Me.Option1
 If opt.Value Then
  MsgBox CStr(opt.Index) & "が選択されました"
 End If
Next
572デフォルトの名無しさん:2013/11/09(土) 16:53:13.66
>>569
ロジックとしてはダメダメだけど
今までLBoundとUBoundって配列の添え字の下限上限評価にしか使ったことが無かったけど
曲がりなりにもこういう使い方が出来るのを初めて知った。ありがとう!

>>571
フォームにあるOptionの値が無条件に評価されるだろそれ?
アホちゃう?
573デフォルトの名無しさん:2013/11/09(土) 17:01:02.15
設計の問題やな

フレームにオプションボタン乗せまくってからフレーム単位のコピペで作った場合
Frame1(0)に Option1(0) Option2(0) Option3(0) Option4(0)
Frame1(1)に Option1(1) Option2(1) Option3(1) Option4(1)
Frame1(2)に Option1(2) Option2(2) Option3(2) Option4(2)

フレームごとにオプションボタンのコピペ貼り付けで作った場合
Frame1に Option1(0) Option1(1) Option1(2) Option1(3)
Frame2に Option2(0) Option2(1) Option2(2) Option2(3)
Frame3に Option3(0) Option3(1) Option3(2) Option3(3)

フレームごとにオプションボタンのコピペ貼り付けしたあとフレーム単位でコピペ
Frame1(0)に Option1(0) Option1(1) Option1(2) Option1(3)
Frame1(1)に Option1(4) Option1(5) Option1(6) Option1(7)
Frame1(2)に Option1(8) Option1(9) Option1(10) Option1(11)


コピペなんてしないでひとつひとつ貼り付けていった場合
Frame1に Option1 Option2 Option3 Option4
Frame2に Option5 Option6 Option7 Option8
Frame3に Option9 Option10 Option11 Option12
574デフォルトの名無しさん:2013/11/09(土) 17:03:46.19
あとは任意のFrameの上にのっかってるかどうかの判断をくっつければいいっすな
575デフォルトの名無しさん:2013/11/09(土) 17:07:37.05
>>570
配列風なのに部分的抜けるとかVBはマジキチ
576デフォルトの名無しさん:2013/11/09(土) 17:08:24.15
For i = 0 To 10
Load Option1(i)
Next i
Unload Option1(5)
とか
577デフォルトの名無しさん:2013/11/09(土) 17:17:56.77
Indexプロパティで値入力できるものな
578デフォルトの名無しさん:2013/11/09(土) 17:28:52.91
>>574
配列の途中が抜ける事ができる言語のほうが多いと思うけど?
579デフォルトの名無しさん:2013/11/09(土) 17:30:26.15
配列の順次アクセスとか信用してはならない
580デフォルトの名無しさん:2013/11/09(土) 17:32:12.78
安価つけてる奴
おまえはスレを再読み込みしろ
レス番が間違ってるぞ
581デフォルトの名無しさん:2013/11/09(土) 17:38:49.04
順次チェックをする際はNullチェックとかNothingチェックとかNILチェックは欠かさずやりましょう
582デフォルトの名無しさん:2013/11/09(土) 17:41:43.04
EmptyやUndefinedもあるよ!
583デフォルトの名無しさん:2013/11/09(土) 19:18:36.92
初期化していない動的配列を識別する方法知ってたら天才らしいが
もちろんココにそんな凄い人がいる訳もなく
大人しくゼロで初期化してから使うしかないのよねぇ・・・あほくさぁぁぁぁ!
584デフォルトの名無しさん:2013/11/09(土) 19:25:30.77
天才 変態

非にして似てるものかな
585デフォルトの名無しさん:2013/11/09(土) 19:37:45.85
>>583がいいたいのは
だれか教えてくれってこと。
もちろん俺は教えない。
586デフォルトの名無しさん:2013/11/09(土) 19:39:03.30
動的配列の初期化と言うのが何を指してるかわからんが
要素の確保された(動的)配列はその段階で初期化されてるはずだが
587デフォルトの名無しさん:2013/11/09(土) 19:43:37.91
Dim hoge() As Integer
Redim hoge(100) ' Redimの呼び出しで初期化もなされるhoge(0)〜hoge(100)まで全部0がセットされる!
588デフォルトの名無しさん:2013/11/09(土) 19:49:18.19
>>586
たぶんだけど

Dim intReg() as Integer

  If intReg() = ??? then  '配列の初期化判定
    Resim intReg(0)
  Else
    Redim Preserve intReg(Ubound(intReg) + 1 )    
    intReg = intSpecZero(Date)   
  End if

みたいな事がじたいのでは?
589デフォルトの名無しさん:2013/11/09(土) 19:50:27.52
Variantなら空配列があるのにね
590デフォルトの名無しさん:2013/11/09(土) 19:51:01.82
やっちまった

Resim → Redim

よろしく
591デフォルトの名無しさん:2013/11/09(土) 19:53:33.19
>>589
プロなら VariantとGo To分は使いたくないところだな。
実際、ある局面においては喉から手が出るほど使い時がある便利な存在だが
プログラマーとしての品格が疑われるからな
オレはArrey関数さえ使わないぜ?
592デフォルトの名無しさん:2013/11/09(土) 19:53:42.46
エラー処理でなんとかすればいいんじゃないの
593デフォルトの名無しさん:2013/11/09(土) 19:54:38.29
>>591
VB6にArrey関数なんて無いから使えんだろ?
594デフォルトの名無しさん:2013/11/09(土) 19:55:07.78
>>592
それも恥ずかしいね
595デフォルトの名無しさん:2013/11/09(土) 19:55:51.34
面倒なことは考えずフラグ作ればいいじゃん

Dim existArr As Booelan
Dim arr() As Integer

If Not existArr Then Redim arr(100)
596デフォルトの名無しさん:2013/11/09(土) 19:56:24.08
If Not existArr Then Redim arr(100): exsitArr = True
597デフォルトの名無しさん:2013/11/09(土) 19:56:35.41
>>595
スマートじゃないな
598デフォルトの名無しさん:2013/11/09(土) 19:57:32.53
言語仕様でどうにか出来ないか?って事だろ?
599デフォルトの名無しさん:2013/11/09(土) 20:01:51.64
プログラマなら、言語仕様の問題を
自作のライブラリで解決しろよ・・・。
600デフォルトの名無しさん:2013/11/09(土) 20:04:11.28
安易にフラグを使い始めるのが糞コードの始まりw
601デフォルトの名無しさん:2013/11/09(土) 20:06:14.95
うん、だからライブラリを作ればいいと。
602デフォルトの名無しさん:2013/11/09(土) 20:07:21.90
こんな感じだろ

Function EmptyIntArr(arr() As Integer) As Boolean
 On Error GoTo ErrorLabel
 EmptyIntArr = UBound(arr) < 0
 Exit Function
ErrorLabel:
 EmptyIntArr = True
End Function

Private Sub Command1_Click()
  Dim arr() As Integer

  Debug.Print IIf(EmptyIntArr(arr), "empty!", "not empty")
  ReDim arr(10)
  Debug.Print IIf(EmptyIntArr(arr), "empty!", "not empty")
  Erase arr
  Debug.Print IIf(EmptyIntArr(arr), "empty!", "not empty")
  ReDim arr(5)
  Debug.Print IIf(EmptyIntArr(arr), "empty!", "not empty")
End Sub
603デフォルトの名無しさん:2013/11/09(土) 20:11:48.57
GoToが嫌だって?じゃResume Nextしろ

Function EmptyIntArr(arr() As Integer) As Boolean
  On Error Resume Next
  EmptyIntArr = UBound(arr) >= 0
  EmptyIntArr = Not EmptyIntArr
End Function
604デフォルトの名無しさん:2013/11/09(土) 20:29:50.51
コピペ乙
605デフォルトの名無しさん:2013/11/09(土) 20:33:35.27
VBレスキュー(花ちゃん) - 空の配列の判定(次元数/サイズ/最小値/最大値の取得)(VB6.0) - Visual Basic 6.0 VB2005 VB2010
http://hanatyan.sakura.ne.jp/patio/read.cgi?no=111
606デフォルトの名無しさん:2013/11/09(土) 20:48:26.43
おら、汎用性出したぞ

Function EmptyArray(arr As Variant) As Boolean
  If Not IsArray(arr) Then Exit Function
  On Error Resume Next
  EmptyArray = UBound(arr) >= 0
  EmptyArray = Not EmptyArray
End Function

Function UboundArray(arr As Variant, Optional dimension As Variant = 1&) As Long
  On Error Resume Next
  UboundArray = -1
  UboundArray = UBound(arr, dimension)
End Function

Private Sub Command1_Click()
  Dim arr() As Integer

  Debug.Print IIf(EmptyArray(arr), "empty", "not empty")
  Debug.Print UboundArray(arr)
  ReDim arr(5)
  Debug.Print IIf(EmptyArray(arr), "empty", "not empty")
  Debug.Print UboundArray(arr)
  Erase arr
  Debug.Print IIf(EmptyArray(arr), "empty", "not empty")
  Debug.Print UboundArray(arr)
  ReDim arr(9, 8, 7)
  Debug.Print IIf(EmptyArray(arr), "empty", "not empty")
  Debug.Print UboundArray(arr)
End Sub
607デフォルトの名無しさん:2013/11/09(土) 21:03:37.85
だからバリアントを使ったら負けだと思ってよ
608デフォルトの名無しさん:2013/11/09(土) 21:04:44.07
Variantどころか全てVariant相当の言語が
普通に使われてるのに、何言ってんだ?
609デフォルトの名無しさん:2013/11/09(土) 21:14:21.47
イミフ
610デフォルトの名無しさん:2013/11/09(土) 21:47:14.27
動的配列なんてつかわずにCollection使えよといいたかったけど
Collectionて基本データ型の相性が悪いよな
611デフォルトの名無しさん:2013/11/09(土) 23:05:56.46
>>607
なんでバリアント使ったら負けなん?
612デフォルトの名無しさん:2013/11/09(土) 23:13:58.45
ルールブックにそう書いてあるんでそ
613デフォルトの名無しさん:2013/11/09(土) 23:28:57.54
じゃあVal()とかも使わないのか
614デフォルトの名無しさん:2013/11/09(土) 23:29:29.90
Left()じゃなくLeft$()とかバリアント返す関数は片っ端から使えないね
615デフォルトの名無しさん:2013/11/09(土) 23:39:51.39
バリアントを引数にとる標準関数もダメですね
616デフォルトの名無しさん:2013/11/09(土) 23:53:33.01
Variantは使う必要がないところでは
使うべきではないけれど、
使う必用があるところでは普通に使うべきだよ。

例えば、データベースの文字列型(NULL許容)とかね。
文字列型のフィールをString型に入れる。
nullはどうするのかといえば、空文字をnullとみなす。
まあOracleも似たようなものだから、それもありかもしれんが、
じゃあ数値型(NULL許容)はどうする?0をnullとみなす?
いやいや、0円とか普通にあるから。じゃあ-1をnullとみなす?
それでいいとは限らない。真偽値型(NULL許容)はどうするんだ?

場合よっては0がnullだったり-1がnullだったり-999999がnullだったり。
時と場合により、フラグを使う?
Integer型をラップした Integerクラスを作るのもありかもね。
でも、こんなめちゃくちゃだと破綻するのは目に見えてる。
こういう場合、素直にVariant型を使った方がいい。
Variantは気をつけないといけないことがあるが、気をつければいいだけの話。

まあC#ではnull許容型というのも出来たけどね。
617デフォルトの名無しさん:2013/11/10(日) 00:02:09.83
Q、ここは質問スレですか?雑談スレですか?
A、兼用。
618デフォルトの名無しさん:2013/11/10(日) 00:03:16.45
自己解決しますた
619デフォルトの名無しさん:2013/11/10(日) 00:03:23.23
まさにバリアントワネット
620デフォルトの名無しさん:2013/11/10(日) 00:29:57.00
バリアントワネットワークってなに?
621デフォルトの名無しさん:2013/11/10(日) 02:22:31.88
バリアントワネッワーキングじゃね
622デフォルトの名無しさん:2013/11/10(日) 06:33:28.94
>>616
Null のためだけに Variant 使うのはちょっと微妙だな。
俺なら、例えば Integer と Boolean でやるかな。
それより Excel からデータを読み出す時とかは Variant にせざるを得ない。
623デフォルトの名無しさん:2013/11/10(日) 11:59:47.03
構造体をCollectionに入れる方法ないっすか?
Classにするのはなしで
624デフォルトの名無しさん:2013/11/10(日) 13:31:53.27
VBのCollectionにそんな制限ないと思ったけど...
っていうか配列から自分で作ってもたいした手間じゃないと思うけど
625デフォルトの名無しさん:2013/11/10(日) 16:41:40.73
構造体の定義位置の問題を解決しないとCollectionには入れられないよ
626デフォルトの名無しさん:2013/11/10(日) 16:43:00.74
Private Type Unko
  val1 As Integer
  val2 As Long
  val3() As Byte
End Type

Private Sub Command1_Click()
  Dim col As New Collection
  Dim v As Unko
  col.Add v
End Sub
627デフォルトの名無しさん:2013/11/10(日) 16:44:27.83
コンパイルエラー
パブリック オブジェクト モジュールで定義されたパブリック ユーザー定義型に限り、
クラス モジュール内のパブリック プロシージャの引数または戻り値、またはパブリック ユーザー定義型の要素として使用することができます。

エラーの原因と対処方法を次に示します。
パブリック ユーザー定義型を、クラス モジュールのパブリック プロシージャの引数または戻り値として使おうとしました。
またはパブリック ユーザー定義型のフィールドとして使おうとしました。
パブリック ユーザー定義型がパブリック オブジェクト モジュール内で定義されている場合にのみ、このような使い方が可能です。.

mk:@MSITStore:C:\Program%20Files\Microsoft%20Visual%20Studio\MSDN98\98VS\1041\vbenlr98.chm::/html/vamsgPrivTypeInPubFunc.htm
628デフォルトの名無しさん:2013/11/11(月) 00:59:22.76
そのエラーメッセージをみるかぎり、PublicかPrivateなのかが問題なのであって
クラスか構造体かは関係ないように見えるが
629デフォルトの名無しさん:2013/11/11(月) 01:38:12.40
うろ覚えだけど、VBの関数やクラスというのは
COMオブジェクトがベースになってる。

privateなものは、COMオブジェクトではない部分として処理されるから、
COMの仕様を守らなくても良いがpublicなものは、COMの仕様を守る必要がある。

COMの仕様を守るというのは、例えばメソッドの
引数、戻り値の型はCOMと互換性のある型であるということ。

privateなユーザー定義型はCOMではない。
だからCOMを扱うCollectionに入れられない。
ユーザー定義型をpublicにするとCOMになるから
Collectionに入れられる。

とまあ、こんな感じだったと思う。
630デフォルトの名無しさん:2013/11/11(月) 05:09:37.85
それだとPublicなプロパティアクセスとPrivateなプロパティアクセスで
えらい速度差がでるような気がするけど、それホントの話?
631デフォルトの名無しさん:2013/11/11(月) 05:32:04.33
COMで使う構造体はMIDLで定義する必要があり、
VB6でこの構造体を定義する場合はpublicなクラスモジュール内で
publicのユーザー定義型を宣言する。

・・・だったと思う。手元にVBの環境がないので確認できない。
632デフォルトの名無しさん:2013/11/11(月) 06:43:07.22
>>629
うろ覚えでよくこんな適当なこと書けるなあ...
633デフォルトの名無しさん:2013/11/11(月) 13:56:38.19
>>629
多分それActiveXコンポーネントのクラスの場合の話
634デフォルトの名無しさん:2013/11/11(月) 16:11:04.65
>>627の「パブリック オブジェクト モジュール」てのはなんだろう?
635デフォルトの名無しさん:2013/11/11(月) 18:38:54.54
標準モジュールとか言われてたやつじゃないか?
636デフォルトの名無しさん:2013/11/11(月) 18:49:24.51
だめだ、標準モジュールに書いてみたが>>626と同じ>>627のエラーが出るわ

Public Type Unko
  value1 As Integer
End Type

Public col As New Collection
Public v As Unko

Public Sub Hoge()
  col.Add v
End Sub
637デフォルトの名無しさん:2013/11/11(月) 18:51:15.25
Attribute VB_Name = "Form1"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
638デフォルトの名無しさん:2013/11/11(月) 18:51:49.48
Attribute VB_Name = "Class1"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = True
Attribute VB_PredeclaredId = False
Attribute VB_Exposed = False
639デフォルトの名無しさん:2013/11/11(月) 18:57:58.93
拡張子vpsファイルに書いてある各設定値の意味を知りたい
640デフォルトの名無しさん:2013/11/11(月) 18:58:36.65
タイプミスった

拡張子vbpファイルに書いてある各設定値の意味を知りたい
641デフォルトの名無しさん:2013/11/11(月) 19:01:13.07
Type=Exe
Command32=""
HelpContextID="0"
CompatibleMode="0"
AutoIncrementVer=0
ServerSupportFiles=0
CompilationType=-1
OptimizationType=0
FavorPentiumPro(tm)=0
CodeViewDebugInfo=0
NoAliasing=0
BoundsCheck=0
OverflowCheck=0
FlPointCheck=0
FDIVCheck=0
UnroundedFP=0
StartMode=0
Unattended=0
Retained=0
ThreadPerObject=0
MaxNumberOfThreads=1

主にここら辺の設定の意味と設定可能な値を知りたい
642デフォルトの名無しさん:2013/11/11(月) 19:15:55.00
ユーザ定義型変数をバリアント型変数に格納することが出来ないのか
643デフォルトの名無しさん:2013/11/11(月) 19:17:14.67
>>619
それを言うならバリアント馬場だろ?
644デフォルトの名無しさん:2013/11/11(月) 19:18:07.96
Dim u As Unko
Dim v As Variant
v = u

これが出来ないな
645デフォルトの名無しさん:2013/11/11(月) 19:21:21.38
mk:@MSITStore:C:\Program%20Files\Microsoft%20Visual%20Studio\MSDN98\98VS\1041\veendf98.chm::/HTML/defvariantdatatype.htm

バリアント型 (Variant)
数値および文字列の基本的なデータ型以外に、日付、ユーザー定義型、Empty 値、Null 値などの特別な値を持つことができる特別なデータ型。
646デフォルトの名無しさん:2013/11/11(月) 19:23:52.74
variantにセットできるユーザー定義型は関数の引数渡しだけだった気が汁
647デフォルトの名無しさん:2013/11/11(月) 19:27:52.99
Public Type Unko
  val1 As Integer
End Type

Public v As Variant
Public u As Unko

Public Sub foo(ParamArray w() As Variant)
  v = w
End Sub

Public Sub bar(w As Variant)
  v = w
End Sub

Public Sub hoge()
  foo u ' エラー
  bar u ' これもエラー
End Sub
648デフォルトの名無しさん:2013/11/11(月) 19:29:29.98
Cの構造体未満な価値しかないユーザ定義型
649デフォルトの名無しさん:2013/11/11(月) 20:02:58.21
>>636
クラスモジュールのことみたいだな
で、クラスモジュールに定義できるのはクラスだけ

クラスじゃないユーザ定義型は使い物にならんなぁ
いまさらな言語でどうでもいいけど
650デフォルトの名無しさん:2013/11/11(月) 20:04:47.09
>>647
なぜ値で渡さないのかと・・・
651デフォルトの名無しさん:2013/11/11(月) 20:11:27.14
ByValつけても同じエラーだよ
652デフォルトの名無しさん:2013/11/11(月) 20:12:08.95
>>651
なぜ値で渡せば通ると思ったのかと・・・
653デフォルトの名無しさん:2013/11/11(月) 20:13:10.27
Lsetでうまく行った
654デフォルトの名無しさん:2013/11/11(月) 20:15:46.44
LSetはヤバイんじゃねの?単純なメモリコピーだろ?
Type Unko
 Value1(100) As Long
End Type

とかだったら非常にまずいんでねえの
655デフォルトの名無しさん:2013/11/11(月) 20:24:43.02
どんなにサイズが大きくなっても大丈夫だよ
メモリアドレス渡すだけなんだから
656デフォルトの名無しさん:2013/11/11(月) 22:10:25.37
ユーザー定義型をCollectionに入れるやり方はあったはずだよ。
標準モジュールにもクラスモジュールにも書けないなら、
DLLにするんだったかな。

とにかく、ActiveXのCOMオブジェクト
相当にするという発想が重要だったよ。
657デフォルトの名無しさん:2013/11/11(月) 22:30:20.22
>>654
1MBくらいの構造体コピーなんて頻繁に組んでるけどね
最近のPCでは一瞬で終わるよ
658デフォルトの名無しさん:2013/11/11(月) 23:00:29.69
バリアント型にユーザ定義型をLSetしてもいいの?知らなかった。今度からガンガン使うわ
659デフォルトの名無しさん:2013/11/11(月) 23:49:13.19
ディスクならともかく、
1MBのメモリデータと思えばね。
660デフォルトの名無しさん:2013/11/11(月) 23:50:56.74
とはいっても、例えばエクスプローラが
自分の環境では80MB
さすがにそれより小さいアプリなら
数十MBは超えたくないな。
661デフォルトの名無しさん:2013/11/12(火) 00:06:07.39
mk:@MSITStore:C:\Program%20Files\Microsoft%20Visual%20Studio\MSDN98\98VS\1041\vbenlr98.chm::/html/vastmLSet.htm

警告 LSet ステートメントを使って、あるユーザー定義型の変数を別のユーザー定義型の変数にコピーすることは、できる限りしないでください。
あるデータ型のデータを別のデータ型で予約されている領域にコピーすると、予期しない結果が生じる可能性があります。

あるユーザー定義型から別のユーザー定義型に変数をコピーすると、その領域の要素に対して指定されているデータ型に関係なく、一方の変数のバイナリ データだけが他方のメモリ領域にコピーされます。
662デフォルトの名無しさん:2013/11/12(火) 00:12:38.44
つまり、気をつけて使えって話ね。
663デフォルトの名無しさん:2013/11/12(火) 00:24:06.07
気を付けろってレベルじゃないだろ無関係メモリ領域への書き込みとか暴走まっしぐらじゃねえか
664デフォルトの名無しさん:2013/11/12(火) 00:46:30.00
>>663
C言語とかそれが普通だからさ。
memcpyとか知ってるかい?
気をつければいいレベルさ。
665デフォルトの名無しさん:2013/11/12(火) 00:55:01.20
暴走しろってか
666デフォルトの名無しさん:2013/11/12(火) 00:56:48.13
脆弱性の原因
667デフォルトの名無しさん:2013/11/12(火) 01:03:27.81
気をつければいいだけじゃんw
668デフォルトの名無しさん:2013/11/12(火) 06:14:04.92
ってかVBでそんなことするくらいなら素直にC使えって。
669デフォルトの名無しさん:2013/11/12(火) 09:42:58.09
AcitveXの中でInstancingがPrivate以外のClassモジュールで
Publicなユーザー定義型を宣言したら
AcitveXを参照するEXEからはそのユーザー定義型がつかえて
Collectionにもぶちこめるようになる
みたいな気がする。
670デフォルトの名無しさん:2013/11/12(火) 09:47:34.89
連投ごめんな。
>>669の一行目が>>634への回答になると思う。
671デフォルトの名無しさん:2013/11/12(火) 10:08:59.85
>>641
プロジェクトのプロパティで設定されている内容じゃないかい?
名前で想像つきそうなのをいじってみたらすぐわかるだろう。
MSDN会員ならインシデント消費して教えてもらうことができるかも?
672デフォルトの名無しさん:2013/11/12(火) 13:33:57.24
>>661
目算でコピー元の3倍くらいのサイズを用意してLsetすれば大丈夫だろうね
Windows 7にはFault Tolerant Heap機能もあるし、一回目〜二回目は例外落ちしても
メモリーリークが認識され三回目はWindows側で余分にメモリを確保してくれるのでエラー落ちしなくなるだろうから。
Fault Tolerant Heap機能って使用者には便利な機能だけど、開発者にとってはメモリーリーク満載のバグソフトを
平然とリリースする可能性があるから、ある意味致命的な機能になるよなwwww
673デフォルトの名無しさん:2013/11/12(火) 16:17:58.23
もうすでに確認する環境が動いてないが

>>669
クラスは普通にコレクションにぶち込めたはずだが
674デフォルトの名無しさん:2013/11/12(火) 16:19:24.79
そもそもLSetはサポートされている命令では無かったはずだし
何が起こるか保証できない命令、それがLSet
少なくとも業務で作るプログラムに使える命令では無かったが
675デフォルトの名無しさん:2013/11/12(火) 16:27:16.54
電文をunion的に解析するのにlset使った記憶が無くも無い
676デフォルトの名無しさん:2013/11/12(火) 16:37:07.59
>>673
クラスじゃなくてユーザー定義型がどうかという話
モジュールで定義したユーザー定義型はエラーになる
COMとして公開したクラスモジュールで定義したユーザー定義型は
どうなのよってのが今の話題

しかしもうVB6の環境ある奴いないのか?
677デフォルトの名無しさん:2013/11/12(火) 16:40:39.08
>>675
C++のコードをVB6へ移植する時、Unionを実現できなくて困った経験がある
構造体はDLL内部に存在するため構造体のデザインは変更できない
その時Lsetで疑似的にUnionを構成して難を逃れた経験がある
危険だから使わない それはある意味正論だが
正論を言ってられない時に抜け道があるか無いかが
言語の価値を大きく左右する
678デフォルトの名無しさん:2013/11/12(火) 19:39:56.75
>>676
つまりクラスモジュールでTYPE定義するって事?
そんな事出来たっけ?

環境掘り起こして試しても良いけど、その結果を有効活用する機会はもうないだろうしなぁ
679デフォルトの名無しさん:2013/11/12(火) 21:14:13.69
>>677
変換関数を自作しちゃいけない縛りでもあったのか?
LSetのリスクより遥かに安全にできると思うけど。
680デフォルトの名無しさん:2013/11/12(火) 21:15:15.33
そんなに過去の栄光にしがみつきたいのかなぁw
681デフォルトの名無しさん:2013/11/12(火) 21:15:23.23
↓で動いた。

@ActiveXDLLなプロジェクトのClassで
Public Type UserInfo
 Id As Integer
 UserName As String
End Type

A標準EXEなプロジェクトで@のDLLを参照設定して
Sub main()
 Dim c As Collection
 Dim u1 As UserInfo
 Dim u2 As UserInfo
 Dim v As Variant
 Set c = New Collection
 u1.Id = 1
 u1.UserName = "Hoge"
 u2.Id = 2
 u2.UserName = "Fuga"
 c.Add u1
 c.Add u2
 For Each v In c
  u1 = v
  Debug.Print u1.Id, u1.UserName
 Next
End Sub
682デフォルトの名無しさん:2013/11/12(火) 21:27:13.14
>>669
多分それだと思う。>>681で動いたって書いてあるし。

>>678
> つまりクラスモジュールでTYPE定義するって事?
> そんな事出来たっけ?

そう。そんなこと出来るのか?ってのが答だった。

これなら>>627
> パブリック ユーザー定義型がパブリック オブジェクト モジュール内で定義されている場合にのみ、このような使い方が可能です。.

という意味のわからん説明もなんとなく意味が通じる。

で、なんでやねん?って考えた結論が、VBアプリ内で閉じてるユーザー定義型は
COMオブジェクトと互換性がなくて、LSETでメモリコピーできるぐらいだからね。
ActiveX DLLで定義した場合はCOMオブジェクトと互換性がある形になる。
VBは基本的にCOMオブジェクトを基礎としていろんなものが構築されてるんだろうな
っていう結論。
683デフォルトの名無しさん:2013/11/12(火) 21:50:13.65
ActiveXDLLか・・・LerningEditionの俺には再現無理だな
684デフォルトの名無しさん:2013/11/12(火) 21:53:57.27
>>683
MSDNくらい入れよ
685デフォルトの名無しさん:2013/11/12(火) 22:58:04.51
VB5CCEがあれば似たようなことができるかもと思ったが
もうダウンロードできなくなってた
686デフォルトの名無しさん:2013/11/12(火) 23:20:58.84
IDLを書いてタイプライブラリを作るだけでできそうだな。
687デフォルトの名無しさん:2013/11/13(水) 18:22:04.40
フリーのVB6.0パーサってありますか?
688デフォルトの名無しさん:2013/11/13(水) 18:24:41.54
「VB6 parser」でググってみれば
689デフォルトの名無しさん:2013/11/13(水) 18:54:11.93
>>517
全部DLLに固めておけば
690デフォルトの名無しさん:2013/11/19(火) 00:37:38.30
VB6を以前使ったときに300MBくらいのファイルをOPEN文で読み込めなかったり、LAN上のPCにあるディレクトリをディレクトリリストボックスで扱うとかなり遅かったりと問題がありましたが皆さんはそういうトラブルを回避して使っているのですか?
691デフォルトの名無しさん:2013/11/19(火) 00:39:09.98
VB6誕生以降の技術を使うことが間違い
Win95あたりの技術だけ使ってればいいのよ
692デフォルトの名無しさん:2013/11/19(火) 09:29:22.77
.net使えよ。マジ捗るぞ
693デフォルトの名無しさん:2013/11/19(火) 21:57:33.63
VB6を駆逐したいが変換アプリの性能が酷くて困る
高い金だして契約してんのに逆に工数増えてるわ
694デフォルトの名無しさん:2013/11/21(木) 09:29:01.22
"駆逐"しようと考えるから高くなる
簡単な部分はツールでも複雑な部分は運用(=人力)で逃げてください
そういうもんだろ
695デフォルトの名無しさん:2013/11/21(木) 19:51:50.82
なんだかんだで手作業移植が品質もいいし早く納品できるね
もとが綺麗な解析しやすいコードなら自動化するけど
696デフォルトの名無しさん:2013/11/21(木) 21:45:34.69
他言語への変換が簡単にできるぐらいなら
VB6のシステムがここまで生き延びるわけないんだよねえ
697デフォルトの名無しさん:2013/11/21(木) 21:47:20.62
だって、言語だけ変換してもしょうがないもん。

ライブラリまで全部変換しないといけない
その中にはサードパーティのライブラリもあるかも知れないしさ。
698デフォルトの名無しさん:2013/11/24(日) 01:08:00.40
.NetFramework亡くしてくれたらVS2013使ってもいい
699デフォルトの名無しさん:2013/11/24(日) 01:30:37.76
>>698
なん・・・だと・・・。
700デフォルトの名無しさん:2013/11/25(月) 02:29:45.33
>>699
VB6のランタイムは不変だけど.Netはリビジョンが異なると動かないもの
Ver.1.1からVer.4.5.xまで毎回OSとアプリとの互換性を考えながら複数
ビルドバージョンとインストーラ作るの結構しんどいですよ
VB6の基本ランタイムは今やデフォルトで入っていませんかね
もちろん今後WOW64での動作ですがそれが保障されていれば基本問題無いかと
一人で設計開発運用保守をしながらPDCA回してますがVB6SP6はまだ現役で
CodeJock社など米国にもヘビーな経営者の目の黒いうちは大丈夫かと。
※もちろん2人以上の開発者がいて資金時間マンパワーが有れば上記の限りではありません
(VB6に固執する必要は無いと思います)
701デフォルトの名無しさん:2013/11/25(月) 08:33:10.85
うちはVB4,5が現役
702デフォルトの名無しさん:2013/11/27(水) 20:00:36.19
DLLヘルを知らない世代なのか
703デフォルトの名無しさん:2013/11/30(土) 14:13:18.18
>>702
DLLヘルは心得ています。
基本的にsystemroot\SysXXX99\ 配下にはCOM抽出したコンポーネントを配置しないようにしています。
それでも問題が起こることはありますがそれなりに対処していますよ。
逆に最近の大手業者の製品は.NetF/W上で動くアプリが多いです。
.NetFrameworkの製品はバージョン間の問題はありませんか?
704デフォルトの名無しさん:2013/11/30(土) 14:19:48.39
VB6が作られた時代の環境を知っていれば心得ることなんかできないw
705デフォルトの名無しさん:2013/11/30(土) 15:00:55.17
舌足らずで申し訳ありません。
自作の製品については責任をもって対応しているという意味です。
知識としては当時のVBやCマガジンの特集や米MSサイトで得た程度の内容です。
706デフォルトの名無しさん:2013/11/30(土) 15:38:17.21
最近まどかさんを見ませんが元気でしょうか
707デフォルトの名無しさん:2013/11/30(土) 15:41:42.08
まーどっかにいるんじゃない?
708デフォルトの名無しさん:2013/11/30(土) 16:59:25.04
飛びます飛びますの人だっけ?
709デフォルトの名無しさん:2013/11/30(土) 17:44:18.38
とんで、とんで じゃねーの?
710デフォルトの名無しさん:2013/11/30(土) 18:10:41.29
とんでとんで、
回って回って、
おちる〜!
だっけ?

飛行機事故。
711デフォルトの名無しさん:2013/12/01(日) 02:37:54.04
仕事じゃなくて趣味で、こんな面白いアプリ作ったとか言ってみて
712デフォルトの名無しさん:2013/12/01(日) 04:48:05.55
いまWindows8.1 Pro 64bit 版に VB6.0をインストールしてみました。
Windows8の時と同様に、「データアクセス」 の項目だけ後から追加して
再インストールをキメていく方法で問題なく使えるようになりました。
713デフォルトの名無しさん:2013/12/01(日) 04:49:05.97
インストーラが何しでかすか分からんのに勇気あるな
714デフォルトの名無しさん:2013/12/01(日) 12:07:54.65
邪悪なVB6使いは滅びよ
715デフォルトの名無しさん:2013/12/01(日) 18:41:56.27
起動をMain関数からにすれば↓のAPIを使えばVB6でもコンソールアプリ作れたりする?

http://eternalwindows.jp/windevelop/console/console00.html
716デフォルトの名無しさん:2013/12/01(日) 18:45:54.18
>>714
邪悪なのは、VB6使いではなく
VB6アプリを使ってる会社。
717デフォルトの名無しさん:2013/12/01(日) 19:11:46.79
>>715
APIよりWSHを使ったほうが楽かもしれないな。

参照設定 Windows Script Host Object Model (wshom.ocx)

Dim fso As New FileSystemObject
Dim txtstm As TextStream
Set txtstm = fso.GetStandardStream(StdOut)
txtstm.WriteLine "helloあいうえお"
txtstm.Close

どちらの方法でもWindows向けの設定になってるので、
コンソール用に換える
editbin /subsystem:console vbxxx.exe
718デフォルトの名無しさん:2013/12/01(日) 19:18:30.39
WSHだと標準入出力が出来るだけでコンソールの画面クリアとか書き込み位置指定とか出来ないんじゃないの
719デフォルトの名無しさん:2013/12/01(日) 19:20:56.08
コンソールが使えるからと言ってコンソールアプリではない
VB6のコンパイラでは純粋なコンソールアプリにはならないらしいよ
720デフォルトの名無しさん:2013/12/01(日) 19:25:14.85
ダメなのか
やっぱVB.NETに移る死かないか
721デフォルトの名無しさん:2013/12/01(日) 19:33:46.15
AllocConsole()はね
722デフォルトの名無しさん:2013/12/01(日) 19:46:04.34
VB6使いに破滅を!
723デフォルトの名無しさん:2013/12/01(日) 20:01:39.12
なるほどね、AllocConsole()で取得したコンソールは自由自在に呼び出せるけど
起動元のコマンドプロンプトは取得できないのね
724デフォルトの名無しさん:2013/12/01(日) 20:04:51.03
AllocConsole()を呼び出す前にGetStdHandle()を呼び出すと成功はするもののそこで得られたハンドルにWriteConsole()しても失敗する
AllocConsole()を呼び出した後の取得したコンソールになら自由自在に操れる
やはりVB.NETに素直に移行するしかないか
725デフォルトの名無しさん:2013/12/01(日) 20:11:49.38
>>717の言うとおり
editbin /subsystem:console vbxxx.exe
をしたら
呼び出し元のコンソールに出力した
しかもAllocConsole()も呼び出し後の出力も呼び出し元のコンソール上になった
726デフォルトの名無しさん:2013/12/01(日) 23:35:09.29
ナルボドね
つまり移行するしかないわけだ
727デフォルトの名無しさん:2013/12/02(月) 00:07:16.08
移行を即している人ってなんなの
即身仏なの?
728デフォルトの名無しさん:2013/12/02(月) 00:17:01.28
移行しないなんておかしな人達だなぁ
729デフォルトの名無しさん:2013/12/02(月) 09:38:27.65
促←うなぎ
730デフォルトの名無しさん:2013/12/02(月) 23:18:54.05
移行を促している人ってなんなの
促成栽培なの?
731デフォルトの名無しさん:2013/12/02(月) 23:25:29.14
>>725
そのAllocConsoleは失敗してるから、ステータス見てみろ
732デフォルトの名無しさん:2013/12/03(火) 03:07:39.26
見てみた
733デフォルトの名無しさん:2013/12/03(火) 20:20:00.19
http://msdn.microsoft.com/ja-jp/library/x9fsa0sw%28v=vs.71%29.aspx

C#のプロパティって、VB6のProperty GetとProperty Setにそっくりなのな、これは覚えやすい
734デフォルトの名無しさん:2013/12/03(火) 20:23:10.76
735デフォルトの名無しさん:2013/12/03(火) 20:37:34.65
くっさい仕様だよなこれ
736デフォルトの名無しさん:2013/12/03(火) 21:34:30.00
VB6でもクラスモジュール活用してProperty GetやProperty Set使うようなことやってきた人は
すんなりとC#やVB.NETに移行できるよな
737デフォルトの名無しさん:2013/12/03(火) 21:46:46.21
移行できるよなというか、移行したよ。
クラスモジュール活用してたし
すんなりとね。
738デフォルトの名無しさん:2013/12/03(火) 21:49:21.01
標準モジュールでプロシージャのごった煮をつくってるようなとこは
いつまでたっても移行できなさそうw
739デフォルトの名無しさん:2013/12/03(火) 22:31:24.43
VB.NETでも標準モジュールはサポートされてしまってるんだがな
740デフォルトの名無しさん:2013/12/03(火) 23:08:08.81
まあ、それは標準モジュール相当の事ができる言語が大半なわけで、
グローバル変数はどこから書き換えられているかわからんという点で
問題だけど、グローバル関数はさほど問題はないからな。
JavaScriptにもあるMath.sign()みたいなクラスメソッドのようなもんだし。
741デフォルトの名無しさん:2013/12/03(火) 23:24:33.20
僕の書いたコンバータであっと言う間に移行できるよ
正常変換率99.5%のすごいやつさ
742デフォルトの名無しさん:2013/12/04(水) 01:32:56.35
そんなにすごいなら商品化して売ればいいのに
743デフォルトの名無しさん:2013/12/04(水) 13:21:21.64
VB6 で使えるRegExp オブジェクトの実力ってどの程度なの?
744デフォルトの名無しさん:2013/12/09(月) 01:53:51.05
>>741
いくらで使わせてくれる?
745デフォルトの名無しさん:2013/12/09(月) 11:37:12.69
ターゲットは大量のコピペで成り立つシンプルなソースです
746デフォルトの名無しさん:2013/12/09(月) 23:25:34.14
機械翻訳は後の保守コストが高い
リファクタリングして作り直しがベスト
747デフォルトの名無しさん:2013/12/15(日) 06:39:47.05
フォームが最初に上がって来る前提で作られてるから
.NETにコンバートしたら初期化処理でエラー出まくりんぐ
そんなとこまで気を使ってくれるコンバータなら是非欲しい。
まあVB6はVB6のまま使うのがベストだと思う
748デフォルトの名無しさん:2013/12/16(月) 14:04:23.28
>>747 まあVB6はVB6のまま使うのがベストだと思う
同感!!

VB6の次は.NET&amp;#10005;でクラウド○かも
749デフォルトの名無しさん:2013/12/16(月) 18:07:41.21
そのまま使うとサポート切れが問題になるね
750デフォルトの名無しさん:2013/12/16(月) 18:32:48.31
VB6のサポートだったらとっくに切れてるような?
751デフォルトの名無しさん:2013/12/17(火) 13:58:32.03
ランタイムそのものはサポートされてるけどな
http://msdn.microsoft.com/ja-jp/vstudio/ms788708.aspx
>VB6 ランタイムは Windows 7 のサポート有効期間中はOSに同梱される形で出荷され、サポートされます。
>VB6 ランタイムは Windows 8 のサポート有効期間中はOSに同梱される形で出荷され、サポートされます。

まあ、開発環境とサードパーティのコンポーネントがサポートされないとどうしようもないが
752デフォルトの名無しさん:2013/12/17(火) 17:38:42.97
>>751 そういう意味でしたか
753デフォルトの名無しさん:2013/12/19(木) 19:01:00.08
開発はXPとかですればいいってことか
なら開発用のマシンが用意できないならバーチャルPCでいいじゃん
754デフォルトの名無しさん:2013/12/20(金) 23:02:45.75
真面目な話ADOとかいつサポート切れると思う?
ADO.NETに置き換える作業に疲れた
755デフォルトの名無しさん:2013/12/21(土) 00:00:15.54
64ビットは禁句ですか?
756デフォルトの名無しさん:2013/12/21(土) 14:15:04.46
64だと動かないんだっけ?
757デフォルトの名無しさん:2013/12/21(土) 19:04:52.27
すでにVBがサポートされてないんだからADOのサポートを考えてもしょうがない
今のACCESSってまだADOサポートされてるかな?されてればそれが最後じゃないかな
758デフォルトの名無しさん:2013/12/21(土) 19:43:55.85
取引先にVB6と決別する英断させろよ、営業
759デフォルトの名無しさん:2013/12/21(土) 21:22:48.12
動くならいいじゃないか
高い金をかけるほどじゃない
760デフォルトの名無しさん:2013/12/21(土) 23:37:46.85
WSHがあるから、ADOのサポートはまだ続くんでない?
761デフォルトの名無しさん:2013/12/22(日) 05:25:36.28
サポートが動くかどうかって事ならまあ当分は動かせるんじゃないの
>>758が全世界的に進まない限りどうにも
官公庁や教育機関が結構使ってるのもネックだな
所詮はMSも一企業でしかないからね
762デフォルトの名無しさん:2013/12/22(日) 05:53:41.27
営業が仕事をしないIT業界
763デフォルトの名無しさん:2013/12/22(日) 10:01:10.35
>>760
>>212 前後の話題がソレだな
764デフォルトの名無しさん:2013/12/27(金) 18:20:01.01
vbunitとか使ってる?
765デフォルトの名無しさん:2013/12/27(金) 19:53:58.82
使ったことないや。
うちでは標準モジュールとフォームモジュールしかないので使えないと思ってる。
766デフォルトの名無しさん:2013/12/27(金) 23:21:30.59
>>765には質問を変えた方がいいな。

(質問) クラスモジュールとか使ってる?
(レス) うちは○○○だから使えないと思ってる。

なにが入るんだろうか。
767デフォルトの名無しさん:2013/12/27(金) 23:24:46.82
BVUnit - VB6用ユニットテストフレームワーク
http://bvunit.sourceforge.jp/
768デフォルトの名無しさん:2013/12/27(金) 23:27:17.66
Download
http://www.vbunit.com/Download.htm
> Windows NT4 (SP6)
> Windows 2000 (SP4)
> Windows XP (SP2)

Vistaや7は・・・?
769デフォルトの名無しさん:2013/12/28(土) 15:05:42.58
>>768
VB6 用だし
770デフォルトの名無しさん:2013/12/28(土) 15:11:05.83
>>769
なるほど。
771 【196円】 【大吉】 :2014/01/01(水) 00:45:46.21
今年ことVB6が全駆除されますように
772デフォルトの名無しさん:2014/01/01(水) 22:23:11.03
VBアップグレードコンパニオンのVisualStudio2013対応版を試してみた。
相変わらずご愛嬌の域を出ておらず、使えません。。
http://mobilize.net/solution/vb-upgrade-companion/
773デフォルトの名無しさん:2014/01/01(水) 22:26:39.69
InstallShield2013も遂にVB6をサポートしなくなったぞ

InstallShield2013を使ってVB6のインストーラを作るには、
旧InstallShieldで提供されていたマージモジュールを
ひとつずつ追加して自分で検証しながらこしらえてくださいだって
774デフォルトの名無しさん:2014/01/02(木) 14:43:14.03
今年もこの板で楽しめますように
775デフォルトの名無しさん:2014/01/03(金) 16:01:26.40
Windows8.1の32Bit版、64Bit版でも無事にVB6SP6(IDE)のインストール
と動作確認が完了しました。

※WindowsUpdateによりプログラムの互換性に関する修正プログラムはすべて
インストールした状態で実施.
※データアクセスおよびグラフィックのコンポーネントを抜いた状態で
インストールし,後からこれらを再インストール.
776デフォルトの名無しさん:2014/01/03(金) 21:29:07.05
なんか面白いアプリ作ったとか聞かせて
777デフォルトの名無しさん:2014/01/03(金) 21:36:36.99
結果的に、自分が面白いと思うものしか作らない
趣味アプリでも仕事アプリでも
778デフォルトの名無しさん:2014/01/03(金) 21:55:40.02
自分が面白いと思うアプリしか作らないよね。
プロとして当然だと思う。
779デフォルトの名無しさん:2014/01/03(金) 22:38:22.27
業務システムしか作らないよ
家でノートパソコン開くのが辛い
タブレットなら大丈夫なんだが
学生の頃は暇さえあればVS開いてたのに
趣味は仕事にしたらダメだね
780デフォルトの名無しさん:2014/01/04(土) 01:13:11.73
動画からアニメGIFを作るとき
繰り返しの繋ぎ目が合うように
フレームから取り出す領域を移動させたり伸縮させたりを作ってる
フレームの画像からGIFを作るのは市販のアプリにさせるけど
781デフォルトの名無しさん:2014/01/04(土) 01:19:56.58
VBってそういうこともできるんだ。
782デフォルトの名無しさん:2014/01/04(土) 01:31:31.56
銀行のIDやパスワードとか全部、暗号化したファイルに入れてあって
サイトに入力する時はそこからクリップボード経由で行うようにしてる
それだどキーコードが発生しないから安全だよね
783デフォルトの名無しさん:2014/01/04(土) 02:02:01.78
クリップボードとか危険極まりないだろ
別タブで開いてるページとか埋め込みページがクリップボード監視してたらやばいやろ
784デフォルトの名無しさん:2014/01/04(土) 02:06:59.25
これは自作アプリ自慢?
パスワード管理なんて既成のツールでええやん
785デフォルトの名無しさん:2014/01/04(土) 02:11:22.50
GitHubに上げろ
786デフォルトの名無しさん:2014/01/04(土) 13:54:32.04
まぁ、クリップボード監視するような奴はおらんでしょう
キー入力を避けるのが第一
次はその入力画面が成りすましじゃないかどうか
787デフォルトの名無しさん:2014/01/04(土) 14:42:17.22
どう考えてもクリップボードのほうがヤバイ
788片山博文MZコスモ ◆T6xkBnTXz7B0 :2014/01/04(土) 18:30:23.69
クリッボーはやばいよ
ファイルマッピングかメールスロットを使うべき
789片山博文MZコスモ ◆T6xkBnTXz7B0 :2014/01/04(土) 18:36:15.80
クリボー監視は雑魚キャラでもできるレベル1のテクだから、はっきり言って危険度高い。
790デフォルトの名無しさん:2014/01/04(土) 19:30:02.05
   ヘ⌒ヘ
  /(・)(・)\
 ( △――△ )
   ̄/ ̄ ̄| ̄
  (⌒\_ノ⌒)
   ̄ ̄  ̄ ̄
791デフォルトの名無しさん:2014/01/04(土) 19:44:22.42
ポリンキーかニコチャン大王に見える
792デフォルトの名無しさん:2014/01/04(土) 19:46:24.90
>>791
それはない

     _,∩_         _,∩_           _,∩_
    (_____)ゝ、     (_____)    y     (_____)
    / :: :: :: ヽ 〉     /-‐:: ::‐-ヽ /       / :: :: :: ヽ
   _./ (・ )ll(・ ) ∨     _/  0) i! 0) ∨      _/ ( ・)i!(・ ) ゛、_
 // :: :: ∈ゝ :: ::ヽ   // ::  ‐-‐ :: ヽ    //  :: ー一 :: ヽ\
. ゝ/:: :: ::  :: :: ::ヽ  ゝ/ :: ::  ::  :: :: ヽ   ゝ/ :: ::  ::  :: :: ヽく
  ?? |?? |??    ?? |?? |??    ?? |?? |??
       |     |             |     |             |     |
    ⊂!     !つ        シ!     !つ        ⊂!     !つ


     @      @
     ||_ ___||
     /  Y     ̄`ヽ
    .|           \
   / |__ )(___)   ヽ
  /_ヽ_゚_ノ ヽ゚_ノ |__|
  |  ∧ __∧   |   |
  ヾ__| ̄     ̄  し、_ノ
    `ヽ、___  ノ
     __|―-|  _|―-|
     └-ー┘(___)
793デフォルトの名無しさん:2014/01/04(土) 22:57:20.77
サイトの暗証番号入力窓にメールスロットで送れるとは思えにゃいが
794デフォルトの名無しさん:2014/01/04(土) 22:58:58.23
それより話すことも枯れ果てたスレだし
どんな面白いアプリ作ったか話てよ
795デフォルトの名無しさん:2014/01/04(土) 23:07:15.74
WebページだってGUIパーツで作られてるんだからウィンドウハンドルくらい持ってるやろ
796片山博文MZコスモ ◆T6xkBnTXz7B0 :2014/01/05(日) 00:18:23.07
>>795
代表的なブラウザはHTMLのボタンごときにウィンドウハンドルを無駄に消費しないのだよ。ブラウザそのものはウィンドウハンドルを持ってるが
797デフォルトの名無しさん:2014/01/05(日) 00:21:23.31
じゃあWebページにキー入力メッセージを直接送るか
798デフォルトの名無しさん:2014/01/05(日) 02:23:16.27
パスワード管理ならkeepassを使ってる。
パソコンだけでなく、LinuxやMacでも使えるし
iPhone、Android用もある。
自作するのはアホ。
799デフォルトの名無しさん:2014/01/05(日) 03:13:27.08
既存のIDマネージャがIDとパスを盗み出してない保障はない
800デフォルトの名無しさん:2014/01/05(日) 03:20:58.96
気持ちはわかるがそれじゃ今の世の中生きづらいだろ
おれはLastPass使ってる
801デフォルトの名無しさん:2014/01/05(日) 03:29:38.08
安全性うんぬんならオープンソースのを自分でソースコードを一読し自分でコンパイルすればええ
802デフォルトの名無しさん:2014/01/05(日) 03:30:40.61
>>799
OSやIMEやブラウザだって怪しい
803デフォルトの名無しさん:2014/01/05(日) 03:38:46.23
>>799
オープンソースなんだから
コードを見ればいいだけの話。
804デフォルトの名無しさん:2014/01/05(日) 03:39:20.73
KeePassは当然オープンソース
805デフォルトの名無しさん:2014/01/07(火) 23:28:29.84
vb6+ado2.8+sqlserver2000なのですが

select * from T where ID = @ID

@IDをパラメータにしたいのですがうまくいきません
以前ADO.NETでやった時は確かこんな感じでパラメータクエリを作れたと思ったのですが
この環境ではパラメータクエリは使えないのでしょうか?
806デフォルトの名無しさん:2014/01/08(水) 04:34:03.92
>>805
ADOのプレースホルダは?
つかヘルプ見るなりググるなりすれば解決するだろうに
807デフォルトの名無しさん:2014/01/08(水) 20:00:10.69
ADO(Microsoft ActiveX Data Objects 2.8)を使用し、
SQL server 2008R2へ接続するVB6.0プログラムを
Windwos7及びWindows server 2008R2から実行すると、
問題なくデータベースへ接続するのに対して、
Windows server 2008から同じプログラムを実行すると、
以下のようなエラーになります。

430 : クラスはオートメーションまたは予測したインターフェースをサポートしていません

何故でしょうか???
808デフォルトの名無しさん:2014/01/08(水) 20:33:21.04
>>807
それだけの情報で解ると思ってるのか?エスパー希望ならそう言っとけ

32bit/64bitの問題じゃなければ、たぶんこれだと思うけど
http://blogs.msdn.com/b/jpsql/archive/2012/04/03/kb-2517589-264696-win7-sp1-ado-os.aspx
809デフォルトの名無しさん:2014/01/08(水) 20:40:12.29
>>808
ありがとうございます。
早速やってみます。
810デフォルトの名無しさん:2014/01/08(水) 21:26:41.07
つか一連のADO関連のは同一人物か
いまさらVB6で、しかもADOとか、正気とは思えん
811デフォルトの名無しさん:2014/01/08(水) 23:27:23.99
.NETへのリプレースはまだまだ需要があるからADOを教える価値はある
リプレースの案件は.NETだけ知っててもろくな事にならないからね
812デフォルトの名無しさん:2014/01/08(水) 23:33:07.42
>>810
VB6はまだまだ現役
新規案件のカスタマイズプログラムをVB6で開発して納めることも
結構あるよ
813デフォルトの名無しさん:2014/01/08(水) 23:40:17.63
>VB6はまだまだ現役
出世?
生涯現役だもんで
814デフォルトの名無しさん:2014/01/08(水) 23:59:12.48
それは多分、もう死んでることに自分で気が付いてないだけ
815デフォルトの名無しさん:2014/01/09(木) 00:26:51.11
>>812
そうなんだー
816デフォルトの名無しさん:2014/01/09(木) 22:50:55.72
VB6の亡霊を成仏させなければ
817デフォルトの名無しさん:2014/01/09(木) 23:42:45.92
>>810
VB6SP6, DAO, ADOStream を現役で使っていますが何がダメなのですか?
今夜もビルドして毎日納品していて問題ありませんよ
818デフォルトの名無しさん:2014/01/10(金) 00:43:37.81
↓.NET派の指摘が楽しみ。
819デフォルトの名無しさん:2014/01/10(金) 01:08:41.10
LeftとかTopプロパティって実数だたんだ
インチやcmの場合もあるし、そうだわな
820デフォルトの名無しさん:2014/01/10(金) 01:34:41.24
vb6は糞みたいな暗黙変換とかデフォのプロパティとか危険がいっぱいで素人には任せられない
821デフォルトの名無しさん:2014/01/11(土) 18:13:11.25
本屋でVBの本を開き、VBのサンプルって時計ばっかりと素人女がわめいていた
822デフォルトの名無しさん:2014/01/12(日) 12:24:38.19
Private Sub HScrollコマ送り_Change()
  Image1.Picture = Image2(HScrollコマ送り.Value).Picture
End Sub
Private Sub HScrollコマ送り_Scroll()
  HScrollコマ送り_Change
End Sub

10枚のイメージImage2(0〜9)を用意し、スクロールバーで表示します
  HScrollコマ送り.Min = 0
  HScrollコマ送り.Max = 9
スクロールバーにフォーカスがあるときは[←][→]キーでコマ送りできます
823デフォルトの名無しさん:2014/01/12(日) 12:30:04.47
スクロールバーが右端に来て最後の画像が表示されたところで
[→]キーを押しても無反応ですが、それを左端に戻るようにしようと

Private Sub HScrollコマ送り_Change()
  Image1.Picture = Image2(HScrollコマ送り.Value).Picture
  If HScrollコマ送り.Value = HScrollコマ送り.Max Then
    HScrollコマ送り.Value = 0
  End If
End Sub
824デフォルトの名無しさん:2014/01/12(日) 14:17:03.25
Min=-1,Max=10にして、
Changeイベントで、
 -1になったら9にする
 10になったら0にする
825デフォルトの名無しさん:2014/01/12(日) 14:18:30.58
ありがとうございました
それしかないですよね
826デフォルトの名無しさん:2014/01/12(日) 14:25:34.19
modでいいだろ
ただしオーバーフローには関与しない
827デフォルトの名無しさん:2014/01/12(日) 15:04:35.65
>>826
今時そういう中二病っぽい「テクニック」を使う奴はダメグラマ。
828デフォルトの名無しさん:2014/01/12(日) 15:06:13.98
普通のコードを中二病とかいうのなんで?

いや、まさか、これが普通のテクニックってしらないの?w
829デフォルトの名無しさん:2014/01/12(日) 15:06:40.64
一般化するならmodだろ
830デフォルトの名無しさん:2014/01/12(日) 15:07:56.84
俺もModだな
831デフォルトの名無しさん:2014/01/12(日) 15:16:29.47
どのへんが中二病なんだよ
832デフォルトの名無しさん:2014/01/12(日) 16:39:21.85
あんたら問題の核心が分かっとらんね
>>823のロジックだとImage2(9)の表示に続けてImage2(0)を表示してしまうので
Image2(9)が表示されないという問題だよ
ポインタの計算の問題ではない
833デフォルトの名無しさん:2014/01/12(日) 16:55:08.69
ちょっとなに言ってんのかわからない
834デフォルトの名無しさん:2014/01/12(日) 18:46:42.88
C++みたいに細かいところまで記述されたVB6.0の言語仕様書って手に入りますか?
835デフォルトの名無しさん:2014/01/12(日) 20:36:11.01
MSDNじゃない
836デフォルトの名無しさん:2014/01/14(火) 02:21:49.45
むかし洋書の赤本であったな
837デフォルトの名無しさん:2014/01/15(水) 02:44:02.06
MSDNだよなぁ
新人にもF1押せば良いじゃんって教えてるんだけど何故か見ないんだよな
なんでだろ
838デフォルトの名無しさん:2014/01/15(水) 03:59:21.16
>>837
だよなぁ
839デフォルトの名無しさん:2014/01/15(水) 04:08:14.42
MSDNがインストールされてるのに見ないのはおかしいな
840デフォルトの名無しさん:2014/01/15(水) 09:09:53.25
繰り返し読んで言い回しのクセとかに慣れないと

真っ先に読むべきポイントに自動的に目が動くまでしばらくかかるだろw
841デフォルトの名無しさん:2014/01/16(木) 07:52:05.21
プログラミング全くの初心者に、VB6から教えようという人がいるんだが、
賛成できるか?

まあ、手軽にwindows上で動作するものを作れるから、
つまらなさを軽減できるかもしれないとは思うけど。

薄めのC言語のテキストやらせて、ちょこちょこ自分の思いついたものを
作りつつ、Cのテキストが済んだらJavaやらせる、てのが良いかと思うんだが。

JavaでOOPの基本がしっかりしたら、ようやくVB6であれ.NETであれ
取り掛かれるイメージがある。特に、VB6はJavaやC#から見れば
OOPが中途半端かつ特殊かつ癖が強いので、取り掛かれるとしたら
最後が良いと思うんだ。

やりようによっては、C言語でもwebアプリ作れるし。
(自分が独学でやってる頃はそんな事もした)
842デフォルトの名無しさん:2014/01/16(木) 09:07:16.14
HSPからやるべき
843デフォルトの名無しさん:2014/01/16(木) 09:32:18.92
目標をどこに定めるかってことでは
・手軽にwindows上で動作するものを作れる
・つまらなさを軽減できる
ならVB6でもいいじゃん

C→Javaでやると長いし面倒なうえ目標があいまいなら
printfとコンパイルだけでで飽きると思うわ
844デフォルトの名無しさん:2014/01/16(木) 13:41:49.96
Excel持ってるならExcel VBAからがいいと思う
845デフォルトの名無しさん:2014/01/16(木) 17:48:46.74
Cをやる必要性ってポインタの概念ぐらいだから
Javaからはじめてもいいかもしれない。

VB6が手軽なのは間違いない。
ただ「プログラミング初心者」対象なら
変数のデータ型すら意識しなくて良いというような言語は
用いるべきじゃないと思う。
846デフォルトの名無しさん:2014/01/16(木) 17:59:53.30
JavaとかGUIが腐ってるものは初心者向きじゃないな
847デフォルトの名無しさん:2014/01/16(木) 18:26:53.82
初心者にはCUIで学習させるべき
848デフォルトの名無しさん:2014/01/16(木) 19:23:50.47
何のためにプログラム覚えたいのかに依るだろ
仕事ならその仕事で必要な言語を覚えればいい
趣味なら、いまさらVB6を一から教えるとか有りえねぇ
849デフォルトの名無しさん:2014/01/17(金) 02:13:58.57
初心者にはシンプルでガチガチに型付けされた言語がいい
VBみたいなアンチパターン満載の言語はダメ
850デフォルトの名無しさん:2014/01/17(金) 03:10:50.00
>>848
「教育」つってんだから、学校か会社だろう。
会社にしても、研修とかそんなんだろうけど。
どっちにしろ、VB6は有りえねえか。

自分の下に新人が入ってきたとして、
いきなり案件にアサインして実戦で教育するとしても
VB6の案件を選択する事は無い。
851デフォルトの名無しさん:2014/01/17(金) 03:18:46.83
よくよく考えると841の言う「C→Java」は学習順序としては良いかも。
Cをやって損は無い。それが得意になってくれればそれはそれで
仕事はあるし。得意にならなくても、ポインタわかってくれるだけで良い。

次いでJavaやれば、Cで学習した内容は生きてくるし、
JavaってOOPのテキストで必ず用いられてるぐらい標準的OOPだし。

この2つやっとけば、後はなんとでもなるよね。
C#やってた新人がJavaチームに入って、デザインパターンわかって
無かったとかもよくある話で、やっぱ順序としてはC→Javaが効率的かな。
852デフォルトの名無しさん:2014/01/19(日) 05:52:34.40
ただそれをVB6スレで言うのはどうなのかと
まあ俺も勧めないけど
VB.NETでいいんじゃねw
853デフォルトの名無しさん:2014/01/20(月) 20:56:58.11
VB6が真の意味で初心者向けで無い事は元からわかっている。
854デフォルトの名無しさん:2014/01/20(月) 23:07:09.10
VB6しか使えないって人を増やした事は、ある意味淘汰の現象を作り出せたという功績かもしれない
855デフォルトの名無しさん:2014/01/21(火) 00:46:38.43
VB7以降ってありますか?
何番までありますか?
ざっくりVB6と以降で何が違いますか?
856デフォルトの名無しさん:2014/01/21(火) 01:14:58.18
VB7は製品名VB2002.NET
VB7.1 - VB2003.NET
VB8 - VB2005
VB9 - VB2008
VB10 - VB2010
VB11 - VB2012
857デフォルトの名無しさん:2014/01/21(火) 12:08:18.76
>>856 スレチ
858デフォルトの名無しさん:2014/01/21(火) 12:15:34.35
Twips単位を多用したVB6アプリを.netに移行するのはずげー大変だわ
しかもVB6にはScale Modeをユーザー定義して独自の単位系まで作れた。
たとえば、ここからここまでの距離を100にして50に点を打つとちゃんと真ん中に打たれた。
これをピクセル単位系しかない.netへ移行するのはまず不可能に近い。
変換ツールに頼らずアルゴリズムを見直してゼロから作り直す方が早いのでは?
859デフォルトの名無しさん:2014/01/21(火) 23:12:21.97
そんなの手間はかかるが難しい作業じゃないだろ
860デフォルトの名無しさん:2014/01/21(火) 23:41:08.71
単に、かけたり割ったりするだけだろ...
面倒だとは思うけど。
861デフォルトの名無しさん:2014/01/21(火) 23:42:12.70
>Scale Modeをユーザー定義して独自の単位系

これって手間だけでは解決できないだろ?
862デフォルトの名無しさん:2014/01/21(火) 23:44:39.86
それ以前に、そんな話10年遅いわ。
今頃何言ってんだ
863デフォルトの名無しさん:2014/01/21(火) 23:45:03.24
座標変換すらまともに出来ないコーダーが金とって働いてるのか?
日本大丈夫なのかマジな話
もっと情報教育に力入れないとシナにボコボコにされるぞ
864デフォルトの名無しさん:2014/01/21(火) 23:45:41.55
Compatibilityでそのままいけんじゃない?
てかOpenGLとか使ったら良くない?
865デフォルトの名無しさん:2014/01/21(火) 23:51:25.79
ユーザー定義のScale Modeを理解してない雑魚が簡単に考えてるね
コーディングでどうにかできる問題じゃないのに馬鹿だよね
866デフォルトの名無しさん:2014/01/21(火) 23:52:56.80
リサイズに自動追従するようなアプリだと移植は無理だろ?
全部コードで作り直すしか手は無い。
無い袖は振れないからw
867デフォルトの名無しさん:2014/01/21(火) 23:53:40.11
>>863
2014年、最大級のアホwww
868デフォルトの名無しさん:2014/01/21(火) 23:56:45.30
>>865,866
これがゆとりか
与えられたものしか使うことが出来ない
ハックして使い倒すということが出来ない
869デフォルトの名無しさん:2014/01/21(火) 23:59:01.43
>>868
冷静になれよ かなり恥ずかしいぞ 浮いてるw
870デフォルトの名無しさん:2014/01/22(水) 00:03:04.70
>>868が浮いてるようにように見えるとしたら、それは君のレベルが低いから。
馬鹿じゃないの。
これがVBerか
871デフォルトの名無しさん:2014/01/22(水) 00:03:18.19
冷静にならなきゃならないのは
ごく当たり前に出来ないといけないことを無理だと諦めて
他人に当たり散らすことしか出来ない三流コーダーの君たちなんだが
872デフォルトの名無しさん:2014/01/22(水) 00:03:46.35
連投みっともない
873デフォルトの名無しさん:2014/01/22(水) 00:04:31.38
底辺しか居ないスレで普通人が現れたら相対的に天高く浮いてるように見える
という皮肉だったらごめんね
874デフォルトの名無しさん:2014/01/22(水) 00:05:35.19
逆じゃね?
875デフォルトの名無しさん:2014/01/22(水) 02:24:35.83
>>866
いやその通り、作りなおせば良いだけじゃん
その分踏まえた金額貰えば良いだけの話じゃないの?

趣味の自作プログラムなら知らん
それこそ自前でなんとかせぇよ
876デフォルトの名無しさん:2014/01/22(水) 08:33:29.95
>>865
だから何ができないんだよ?
コード触らずに何とかしたいとか言ってるんじゃないよな (w
877デフォルトの名無しさん:2014/01/22(水) 09:11:35.47
単純コンバートが不可能って言ってるんじゃないの?
つまり移行より作り直しが現実的だと。
878デフォルトの名無しさん:2014/01/22(水) 10:45:39.59
GrapeCityの開発の人にも下手に変換することを考えるより
ゼロから.netで組みなおすことをすすめられた
879デフォルトの名無しさん:2014/01/22(水) 15:23:05.20
>>878
GrapeCityごとき東北の田舎もんに言われるまでもなく
そうしてるわアホ
880デフォルトの名無しさん:2014/01/22(水) 15:31:05.75
グレープ・シティってActiveXの新規リリース止めてしまったね。
Spread 8.0とか出るの期待してたのに、仕方がないので英語版を買って使っている。
日本語表示できない部分があって苦慮しているよ。
881デフォルトの名無しさん:2014/01/22(水) 23:17:29.38
ぼったくりで稼ぐだけ稼いだからしめるんじゃね?
882デフォルトの名無しさん:2014/01/22(水) 23:20:47.72
彼らはCOMを捨てた事を後悔するよ

その時は遅いけど
883デフォルトの名無しさん:2014/01/22(水) 23:32:57.38
COMは仕様がダサすぎる
884デフォルトの名無しさん:2014/01/23(木) 07:30:08.19
ダサいVBの仕様に合わせたんだから仕方がない。
885デフォルトの名無しさん:2014/01/23(木) 10:34:47.61
.netもJavaデベロッパーからするとかなtりダサいけどね
COMの方がまだ特化してる分効率が良くていいかも
886デフォルトの名無しさん:2014/01/23(木) 21:46:54.62
VBerのくせに聞いたような口をきくな
887デフォルトの名無しさん:2014/01/23(木) 22:14:20.38
VBerだがJaverでもありC++erでもある
888デフォルトの名無しさん:2014/01/24(金) 00:03:57.90
COMerで十分。
889デフォルトの名無しさん:2014/01/24(金) 00:06:36.96
>>880
グレープシティには再三言ったけどActiveXやらないね
いかにも感がある。
最近はExcel方眼紙とか言って身内で盛り上がってるよ
890デフォルトの名無しさん:2014/01/24(金) 00:14:45.56
再三言ったけどってどんな自我肥大野郎の言い草だよw
891デフォルトの名無しさん:2014/01/24(金) 00:14:55.46
>>880
OwnerDrawで何とかできないか
892デフォルトの名無しさん:2014/01/24(金) 00:21:22.70
文化オリエント文明の時代
893デフォルトの名無しさん:2014/01/24(金) 00:26:14.02
別にだからどうとは言わないが、いわゆるキリスト看板をそこらに設置してる団体と
関係があるらしいねあそこ。
894デフォルトの名無しさん:2014/01/24(金) 00:39:36.53
FarpointTechnologies社のほうが断然よかった
895デフォルトの名無しさん:2014/01/24(金) 00:56:52.65
VB6の鎖切った形変換まわりの仕様を考え出したバカは腹切って謝罪しろ
896デフォルトの名無しさん:2014/01/24(金) 01:56:59.08
VBA6.1, VBA7がサバイバルしているのがせめてもの救い
897デフォルトの名無しさん:2014/01/24(金) 02:26:59.20
>>895
よく解ってない人が適当に書いても動くものをってコンセプトだからそれでいいのだ
解ってる人はVB使わなきゃ良いんだシー
898デフォルトの名無しさん:2014/01/24(金) 02:27:43.73
>>893
この国はフリーメイソンに牛耳られている。ソースは、深夜枠の萌アニメ
899デフォルトの名無しさん:2014/01/24(金) 05:53:22.67
ーッバコン「ナペロwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww」
900デフォルトの名無しさん:2014/01/24(金) 09:25:42.42
>>891
Spreadに関しては.net版の進化がすさまじい。
セルの中にグラフを表示するとか、確かにオーネードローで実現できなくもないが
オーバーヘッドを考えると列にグラフ表示した時の描画遅延がすさまじいだろうね。
処理中はPaintをしないようにして、処理終了後にPaintするというのは
Spreadでは常識的な技だが、そんなもんでどうにかなるレベルじゃなさそう。

まあSpread 8にもセルへのグラフ表示機能は無いのだけれどねw
901デフォルトの名無しさん:2014/01/24(金) 09:26:36.48
ヤダワァ・・・アタシ、オネードローとか書いちゃったわ

ハズカシwwww
902デフォルトの名無しさん:2014/01/24(金) 11:08:25.43
そういえば東北の震災の時にアクティベーションが出来なくなってすごく困った事があったな。
あの時すぐにインストールできなくて、ビッグディールへの提案が流れてしまった。
50億円の損失だが誰も担保しない。保障は別としても瑕疵さえも認めずだった。
903デフォルトの名無しさん:2014/01/24(金) 11:45:12.10
だが代わりに自分の無能さを他人の責任にすり替えるテクニックがほんの少し向上したのでよしとしておこう
904デフォルトの名無しさん:2014/01/24(金) 14:40:07.31
中の人が怒ってるw
905デフォルトの名無しさん:2014/01/24(金) 16:04:08.32
>>901
姐さん、この手の技術は何処で学べるんでしょうか
906デフォルトの名無しさん:2014/01/24(金) 21:03:55.55
みんなどんなアプリ作ってるか教えてよ
おいらはオンデマンド配信の動画を録画したり
保存した動画を再生したりを作ったぞ
ローテクを駆使してな
907デフォルトの名無しさん:2014/01/24(金) 21:11:26.63
最近では動画から人の顔を検出して、通路を通るだけで認証できるようにする顔認証プログラムかな
すべてをVB6のコードだけで作った

3年前に駐車場の自動ナンバープレート読み取りソフトを作った時よりもかなり難しかった
人間の顔の特徴をとらえて、3D上の角度から距離を算出して行かなければならないから大変だった
コードの多くは三角関数で、フーリエを使った重畳積分からサイノグラムを抽出して計算する部分だ
908デフォルトの名無しさん:2014/01/24(金) 21:28:59.64
どれをとってみてもVBでやりたくない処理
909デフォルトの名無しさん:2014/01/25(土) 20:21:54.37
凄いな顔認証か
おいらは証券会社のツールをキャプってリアルタイム株価を読み取ったが
数字を識別するだけでも大変だったのに、次元のまるで違う話だね
910デフォルトの名無しさん:2014/01/25(土) 21:49:51.99
顔認証をマスクで突破されたので、変顔認証を作った。
生体認証と同時にパスワードと同じ効果もあった。
911デフォルトの名無しさん:2014/01/25(土) 21:51:18.01
ミッション イン ポッシブル の 見過ぎ
912デフォルトの名無しさん:2014/01/25(土) 21:53:11.26
タイムマシンを作った。
スタートボタンを押して少し待つと、時間を三秒進めることができた。
913デフォルトの名無しさん:2014/01/25(土) 21:56:56.59
無理目の任務が楽な任務に変わった。
914デフォルトの名無しさん:2014/01/26(日) 10:39:55.03
vb.netへのコンバータをvb6で書いた
915デフォルトの名無しさん:2014/01/26(日) 16:35:09.61
N88やGW-BASICが現役だ
916デフォルトの名無しさん:2014/01/26(日) 16:52:12.86
>>914
まあ、ネタだろうがどうせ書くなら vb.NET で書けよ (w
917デフォルトの名無しさん:2014/01/26(日) 17:39:06.39
型変換規則が把握しきれないのですが綺麗にまとまったリファレンスサイトとか無いですか?
918デフォルトの名無しさん:2014/01/26(日) 18:10:19.16
そんな複雑と思えんが...
919デフォルトの名無しさん:2014/01/26(日) 19:30:29.12
数値、文字列の変換はフォーマットとか考えたら面倒だろ
どんな形式なら変換出来るのかとかな
920デフォルトの名無しさん:2014/01/26(日) 20:06:53.52
何のこっちゃ。
それは「型変換規則」なんぞではなく、書式設定じゃないのかよ。
921デフォルトの名無しさん:2014/01/26(日) 20:18:54.10
変換規則の一部でしょう普通に考えて
922デフォルトの名無しさん:2014/01/26(日) 20:35:40.29
まあVBerの君にとってはそうなんだろうねきっと。
っていうかわざわざご丁寧にカギ括弧付けて「型変換規則」って書いてるのに馬鹿なのか本当
923デフォルトの名無しさん:2014/01/26(日) 20:38:17.80
型変換規則だろどう考えても
「特定の値を持つ文字列型から数値型に変換出来る」
というルールが型変換規則ならなんなんだよ
924デフォルトの名無しさん:2014/01/26(日) 20:43:45.84
何が「どう考えても」かさっぱり分からない。
そもそも、

>数値、文字列の変換はフォーマットとか考えたら面倒だろ
この日本語として成立してない文は何なの。

CdblやCSngに渡せる文字列の仕様が知りたいなら最初からそうはっきり書け馬鹿。
925デフォルトの名無しさん:2014/01/26(日) 20:46:28.00
バカはてめえだ
関数通さなくても変換される時点で
言語に組み込まれた型変換規則なんだよ
926デフォルトの名無しさん:2014/01/26(日) 20:49:13.98
ダメだこりゃ。
VBerは、いや少なくともこの彼は、自分が他人に通じるまともな文章を書けないことを
責められていることが理解できないらしい。

で、逆ギレ。
みっともないことこの上ない恥さらしだな。
927デフォルトの名無しさん:2014/01/26(日) 20:52:41.07
馬鹿な彼のために日本語講座をしておいてやると、そういうことを人に尋ねたい場合は例えば、

暗黙的に実数に変換可能な文字列の仕様はどこに書いてありますか?

と書くんだよお馬鹿さん。
928デフォルトの名無しさん:2014/01/26(日) 20:54:54.15
>>927
まだ気付かんのかアホ
それ型変換しとるやろが
文字列から数値に変換してないってんなら論理的に説明しろ
基地外の相手は疲れるわほんま
929デフォルトの名無しさん:2014/01/26(日) 20:57:39.98
>>928
馬鹿だろお前。
文字列から数値に変換してない、なんて言ってない。

俺が言ってるのはこうだ。

『質問は他人に分かるように書け馬鹿』
930デフォルトの名無しさん:2014/01/26(日) 21:04:47.56
>>929
普通の文書を理解できる程度の知能を身につけてから2ちゃんやれやカス
まあてめえじゃそりゃ無理な話だから
来世に期待してさっさとサヨナラすのをお勧めするぜ
931桃白白 ◆9Jro6YFwm650 :2014/01/26(日) 21:27:02.40
  |ヽ∧_
  ゝ __\
  ||´・ω・`| > やめなよ VB使ってる珍獣同士なかよくやりなよ!
  /  ̄ ̄  、ヽ _______
 └二⊃  |∪=| |───  /
  ヽ⊃ー/ノ    ̄ ̄ ̄ ̄ ̄
     ̄`´ ̄
932デフォルトの名無しさん:2014/01/26(日) 21:30:33.78
オッパイが毒吐くとは珍しい。
933デフォルトの名無しさん:2014/01/27(月) 10:21:26.22
Microsoft 社、今年末リリース予定のWindow 9 から Visual Basic 6のランタイムサポートを廃止!
http://msdn.microsoft.com/ja-jp/magazine/jj133828.aspx
934デフォルトの名無しさん:2014/01/27(月) 12:19:26.29
vectorでランタイム落としてくるのじゃだめなの?
ってか実際xpから内蔵してるランタイムじゃ動かないのあるから、結局落としてくることになるし。
935デフォルトの名無しさん:2014/01/27(月) 18:39:55.96
ランタイム自体がOSで機能しなくなるという話
OLEAUTOのモジュール内部でサスペンドする
936デフォルトの名無しさん:2014/01/27(月) 22:37:57.60
いよいよか・・・
937デフォルトの名無しさん:2014/01/27(月) 23:12:37.63
>>933
得意げに貼ってるつもりなんだろうけど、これ読んで馬鹿にされてることに気が付かないなら
かなり重症の馬鹿だと思うけど。

こういの褒め殺しって言うんだよ知らないかな。
938デフォルトの名無しさん:2014/01/27(月) 23:16:58.74
あえて一番の敗者を挙げるなら、馬鹿に反応して何行もレスしてしまう興奮おじさん・・・かな?
939デフォルトの名無しさん:2014/01/28(火) 02:00:45.03
>>933
ちょっとひと言 - 物言わぬ多数派: Visual Basic 6 が今でも成功している理由

今は業界から離れてしまって全然知らないんだが
VBって今でも成功してるの?
940デフォルトの名無しさん:2014/01/28(火) 08:39:12.41
なにをもって成功と言うかに依ると思うが...
使われ続けるのを成功と言うなら、結構成功した方じゃね?
941デフォルトの名無しさん:2014/01/28(火) 09:07:31.53
.netに慣れたら6には戻れないなぁ
942デフォルトの名無しさん:2014/01/28(火) 09:08:15.02
オブジェクト指向で作られた最高傑作ソフトはVB6じゃない? 
943デフォルトの名無しさん:2014/01/28(火) 09:59:26.54
何を持ってオブジェクト指向と呼ぶかだな。
当時としてはOODとしては先端だったけど、
OOPとしてはまがい物だった。
944デフォルトの名無しさん:2014/01/28(火) 10:14:02.43
>>941
>.netに慣れたら6には戻れないなぁ

.netのVBに慣れるとVB6の言語仕様を忘れてしまう。たまにVB6で作ると実行エラーの山。
.netのVBからC#へ変換するコンバータに非常に良いものがあって
これを使って作る時はVBで、提出するときはC#で、社内ではVBとC#の両方できるプログラマーとして
重宝されている。
945デフォルトの名無しさん:2014/01/28(火) 10:15:13.69
なぜかC#からVBに変換するソフトはダメダメなものが多い
946デフォルトの名無しさん:2014/01/28(火) 20:02:43.37
>.netのVBからC#へ変換するコンバータに非常に良いものがあって
お勧めのコンバータを一つ上げて下さい
947デフォルトの名無しさん:2014/01/28(火) 20:19:32.56
>>946
WEBでC#へ変換してくれるフリーのサービスがあるけど、使い物にならない
そこれ、俺が常用してるのはコレ

VB.Net to C# Converter
http://www.vbconversions.com/

VB6からC#へ変換する場合はVBTo.Converterを使用している

VB6からMS VC++ MFC, VC++.NET (CLR), VBNET, C#, J#,
Borland C++ Builder, Borland Delphiに変換可能な神ツール

VBTo.Converter
http://www.vbto.net
948デフォルトの名無しさん:2014/01/28(火) 20:31:31.73
プロジェクトファイルからの変換だとさすがに綺麗に変換されるな。
アセンブリからの逆コンパイルで作ったソースはかなり見にくい。

不正にシリアルコードを盗もうとして.NET Reflectorを使う事があるが、
逆アセするよりは遥かに楽だが、ソースのメンテには使えないわ。
949デフォルトの名無しさん:2014/01/28(火) 20:33:37.62
>>948
>不正にシリアルコードを盗もうとして.NET Reflectorを使う事がある

ちょろい奴だと、バイナリエディタで「シリアル番号が違います」のメッセージを検索して
その付近にシリアル番号がそのまま埋め込まれている事もあるよ。
950デフォルトの名無しさん:2014/01/28(火) 21:08:22.99
>>947
どうせそのツールも買わずに割ったんだろ?
951デフォルトの名無しさん:2014/01/28(火) 22:41:38.27
割りに対してはVB6は最強レベルってこと?
これが理由でVB6を使い続ける向きもあるだろうな
952デフォルトの名無しさん:2014/01/28(火) 22:42:51.67
変換ツールでうまくいったためしがない
953デフォルトの名無しさん:2014/01/28(火) 22:57:11.50
変換ツールって何をどう変換するの?
954デフォルトの名無しさん:2014/01/29(水) 11:51:31.48
VB6でビットコイン作りたいねんけど
955デフォルトの名無しさん:2014/01/29(水) 12:03:32.86
>>952
どの言語使っても一緒じゃーんっていうプレーンなコーディングを心がけるのがよい
956デフォルトの名無しさん:2014/01/29(水) 12:05:29.17
どんな秀逸な変換ツールでも100%完璧な変換は無理

あくまで変換前後の両者の言語で書ける前提で使う物
手間が9割以上省けるのは事実

それにしてもVB6は寿命長いね
VS2003時代の.net Framework 1.1なんてとっくにサポート打ち切られたのに・・・
VS2005の.net 2.0も3.5や4.xに比べて中途半端な仕様ゆえ危うい・・・

VB6はVBSと互換性が高い点から、ExcelのVBAを外せないのと同様に
開発プラットフォームから安易に外せないとでも言うのだろうか?
957デフォルトの名無しさん:2014/01/29(水) 12:05:46.20
VB6のActiveX EXEもC++に変換してくれるの?
958デフォルトの名無しさん:2014/01/29(水) 12:07:40.41
サポート代金払ってくれるお得意様がいるんじゃね
959デフォルトの名無しさん:2014/01/29(水) 12:08:25.26
>>957
VB6のソースがプロジェクトレベルで揃っていれば余裕
VB6のユーザーコントロールさえC++どころかDelphiにも移行できたよん
960デフォルトの名無しさん:2014/01/29(水) 12:11:31.57
>>958
大企業の開発部門の技術革新は象の様に遅いからな
COBOLしかできない長老がトップに居たりするし
それが既得権益だと思っている

それにひきかえ、俺たちアリはすぐさま新しい物に飛びつく
失敗作となり無駄となったものの方が残ったものよりはすかに多い
しかしそれら数々の失敗作でさえ、今の俺の技術力の肥やしになったと思っている
961デフォルトの名無しさん:2014/01/29(水) 12:14:22.31
SUGEE!
IDLまで書いてくれるとは
962デフォルトの名無しさん:2014/01/29(水) 12:15:44.61
おそらく仕事では絶対に使わないだろうが、自分のためになったものはいくつかある。
最近ではRubyかな?オブジェクト指向を学ぶには.netから外に出る事が本当に大切だと思った
JavaがC#に比べてどうのという奴が多いが、そのJavaでさえオブジェクト指向という意味では不完全だ
来年あたりはObjective-Cをやってそうで恐い
963デフォルトの名無しさん:2014/01/29(水) 12:18:51.36
VB6は金融サーバー上の巨大なActiveXとして開発に使われた時期があったからね
あの複雑怪奇なサーバーサイド ゾンビを他の言語システムへ移行する勇気は俺にはない
964デフォルトの名無しさん:2014/01/29(水) 20:03:23.65
FAで使ってて、もうどうしようもないレベルになってる
年に一度サーバを落とすんだが、何台か立ち上がらない
965デフォルトの名無しさん:2014/01/30(木) 01:53:47.05
コンバータ使ってコンパイルまでこぎつけても実行時バグだらけ
966デフォルトの名無しさん:2014/01/30(木) 10:11:01.42
そう、VB6は意外と思われるかも知れないがサーバーサイドのCOMとして
基幹システムに君臨しているケースが少なくない。
しかも規模が巨大なため、金融に蔓延るCOBOL同様にそれに変わるものが出現しない。

たとえ革新的なプログラミング技術を身に着けていても、金融の知識が無ければ金融界ではただのゴミ。
金融のしくみやノウハウに精通している人間がCOBOLとVB6しか使えないからこうなっている訳だが
逆に言えば、COBOLやVB6がプロフェッショナルなプログラマーでなくても理解できる平易なプログラム仕様であったといえる。

その意味で、Excel VBAはMicrosoft社の最高傑作と言えよう。
967デフォルトの名無しさん:2014/01/30(木) 12:11:46.28
GCではなく参照カウント式のCOMネイティブなC#とかあったら移行するんだが
968デフォルトの名無しさん:2014/01/30(木) 13:09:54.25
>>966
VB6のCOMはアパートメントモデルだから
並列処理のパフォーマンスが苦しくなるんだよね。
VB6でWindowsDNAは正直地雷だった。
969デフォルトの名無しさん:2014/01/30(木) 13:28:32.24
>>968
それを仮想化を使ってフリースレッドモデルに偽装して逃げる技が流行している。
ある仮想化プロセス内のグローバルデータは他の仮想化プロセスと時間軸上で完全に独立している。
従ってクリティカルセクションもシリアライゼーションも必要ないが、もちろん呼び出し側で区別する必要はある。
970デフォルトの名無しさん:2014/01/30(木) 13:41:01.41
>>969
それって単純に分散では?
あくまでCOMは一つって前提で・・・
971デフォルトの名無しさん:2014/01/30(木) 13:46:25.15
>>968
今日の昼飯、築地の寿司大で40分並んで待たされた俺には身に染みてよくわかるw
972デフォルトの名無しさん:2014/01/30(木) 23:08:56.93
【各スレ共通ム板NG推奨リスト】
hoge
チョーセン人
片山
QZ
uy
973デフォルトの名無しさん:2014/01/31(金) 12:19:20.04
コードの検索でプロジェクトを指定すると全部から検索するのが厄介
自作ライブラリが10ファイル以上読み込んであって、それは除外したいのに
974デフォルトの名無しさん:2014/02/02(日) 12:16:50.72
VB6のコンパイラってVisual Studio 6.0しか無いのかな?
.NETに移植する案件に回されたからもとの動作を把握したいのだけど
自宅に環境を作れないよ
975デフォルトの名無しさん:2014/02/02(日) 12:36:37.07
自宅に持ち帰るとか今時ありえるのか
976デフォルトの名無しさん:2014/02/02(日) 12:40:44.42
うちの会社は研修は自費だし課題解決に自習時間使うのも推奨されてる
流石にデータ持ち出しとかは出来ないからテストまでは出来ないけど自宅でプロトタイプ作って会社で試すくらいは日常だね
977デフォルトの名無しさん:2014/02/02(日) 12:41:57.24
練習くらいならVBAでいいんじゃないの
978デフォルトの名無しさん:2014/02/02(日) 19:10:42.08
vb6のランタイムを解析してvb6のソースコードから動くコードをコンパイルすればいい
979デフォルトの名無しさん:2014/02/02(日) 22:16:12.03
>>974
動作確認したいだけならIDEはいらないでしょ。
(あった方がいいけど)
ランタイム突っ込んだら7でも動作はするし、
だめならXP探してくればどうか。
980デフォルトの名無しさん:2014/02/02(日) 22:40:46.32
>>979
移植案件だから、関数単位とかで動きを見たいんじゃね?
981デフォルトの名無しさん:2014/02/02(日) 23:02:45.02
もっと細かいレベルで挙動を知りたい
仕様書がないから実際に書くしかない
982デフォルトの名無しさん:2014/02/02(日) 23:23:51.90
VB6の範囲だけで細かいレベルの動きに疑問なんてあるか?
ソースはもちろんあるんだよな
983デフォルトの名無しさん:2014/02/02(日) 23:59:32.00
984デフォルトの名無しさん:2014/02/03(月) 00:42:30.52
985デフォルトの名無しさん:2014/02/03(月) 00:59:00.27
986デフォルトの名無しさん:2014/02/03(月) 02:13:10.14
>>974
メディア借りるかオークションとかでGETすれば?
MSはVSのサポートは打ち切ったから入れるのは自由だよ
但し何かあっても各自の自己責任だし質問されても答えないよってスタンス
Win7ならまあなんとか動かせるしね
因みに関連する他社ソフトやCOMなんかもちょいと設定すればちゃんと動く事は確認している。
が、責任は取れないので、質問されても「動作保証外なので移行して下さい」としか言っちゃいけないルール。

あとは金とネームバリューの力があれば・・・
以前自分が行った所は、MS技術者の人を呼び寄せて直接この辺りを聞いてた
流石大企業はやる事が違うぜぇーと思った

でもまあ古いのは確かだから、やっぱ可能であれば移行したいよね。
俺らも仕事にありつけるし
987デフォルトの名無しさん:2014/02/03(月) 08:00:33.17
>>982
言語知ってたらその言語で作られたソフトの動きがすぐにわかるって?
スゲーな、いまどき中学生でもそんな発言ないわ〜 (w

>>986
> MSはVSのサポートは打ち切ったから入れるのは自由だよ

いつの間にフリーになったんだよ。
自分に都合のいい解釈してんじゃねーよ (w
988デフォルトの名無しさん:2014/02/03(月) 08:04:15.72
今正規に入手しようと思ったらMSDNサブスクリプションになっちゃうの?
989デフォルトの名無しさん:2014/02/03(月) 09:27:57.10
そうです
990デフォルトの名無しさん:2014/02/03(月) 12:33:58.01
991デフォルトの名無しさん:2014/02/03(月) 14:17:28.15
>>989
でもお高いんでしょう?
992デフォルトの名無しさん:2014/02/03(月) 19:12:19.17
もちろん
993デフォルトの名無しさん:2014/02/03(月) 20:24:57.18
994デフォルトの名無しさん:2014/02/03(月) 22:23:00.56
仕事なんだから自分の金じゃね〜し高いの安いの何てどうでもいいんじゃね?
つか、Professionalでも新規で30万ちょいだし、Premiumでも70万ちょいだし
安いもんだよ(複数年契約)
995デフォルトの名無しさん:2014/02/03(月) 22:27:09.26
.NETトランスレータ(不完全)
コンパイラ(開発環境)とランタイム

製品としてあるならどっちが欲しい?
996デフォルトの名無しさん:2014/02/04(火) 00:03:53.43
>>995
C++とC#だけのパッケージにしてお安くしたVSなら欲しい。
997デフォルトの名無しさん:2014/02/04(火) 03:56:09.71
うめ
998デフォルトの名無しさん:2014/02/04(火) 06:42:26.66
しゃけ
999デフォルトの名無しさん:2014/02/04(火) 09:33:21.79
ぬるぽ
1000デフォルトの名無しさん:2014/02/04(火) 09:54:18.66
がんばれVB6
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。