トップページ⇒tech
1001コメント289KB

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

レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん2013/09/01(日) 16:27:03.73
ここは 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/

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

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

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


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

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

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

>>48
今試しに、上から順に選んだ場合と、下から順に選んだ場合をやってみたが、どっちも下から昇順になった。
下から昇順ってのが基本なのかな?
0050デフォルトの名無しさん2013/09/10(火) 16:07:09.11
もうForでLoadしなよ・・・
0051デフォルトの名無しさん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)
にしかならなかったぞ
左上から順番にナンバリングされたぞ
0052442013/09/10(火) 17:04:39.64
>>51
うーん? と思って何もないところでやってみた。 まじだ orz

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

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

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

イミフ
0076デフォルトの名無しさん2013/09/19(木) 20:48:35.21
>>74
MySQLではダメなの?
0077デフォルトの名無しさん2013/09/19(木) 20:49:15.87
>>75
縦読み乙w
0078デフォルトの名無しさん2013/09/19(木) 20:49:20.25
Oracleはダメ
0079デフォルトの名無しさん2013/09/19(木) 20:50:53.40
JDBC
0080デフォルトの名無しさん2013/09/19(木) 20:51:47.44
RDO
0081デフォルトの名無しさん2013/09/19(木) 20:51:54.96
MySQLにしてもMariaDBにしてもSQL Serverより目に見えて速くはならないよ
小規模ザイズのレコードセットに単純なクエリーなら何を使っても大差ない
それを言ったらBtrieve最強って話にもなってしまう
0082デフォルトの名無しさん2013/09/19(木) 20:57:43.75
SQLite最強
0083デフォルトの名無しさん2013/09/19(木) 20:58:17.45
そもそもMySQLもMariaDBもどれもVB6からアクセスできないんじゃないの
0084デフォルトの名無しさん2013/09/19(木) 21:24:55.38
ODBCも知らん雑魚
0085デフォルトの名無しさん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
0086デフォルトの名無しさん2013/09/19(木) 21:26:48.49
ここって初心者スレだっけ?あんまりだわ・・・
0087デフォルトの名無しさん2013/09/19(木) 21:32:18.67
SQLiteってDLLからAPI使うんじゃなくてODBCを使うもんなのか
0088デフォルトの名無しさん2013/09/19(木) 21:33:14.13
またまたすごいのがキタわん!
0089デフォルトの名無しさん2013/09/19(木) 21:41:35.92
楽しいスレですね
0090デフォルトの名無しさん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の特定テーブルを更新します。
何が原因でしょうか???
処理速度アップに何か試してみた方がいいことありますでしょうか?
よろしくお願いします。
0091デフォルトの名無しさん2013/09/19(木) 23:45:03.77
よお無能
0092デフォルトの名無しさん2013/09/19(木) 23:49:19.54
CPUのスペックが下がってるじゃん
0093デフォルトの名無しさん2013/09/19(木) 23:54:09.94
GitHubにVB6製のアプリ公開してもいいのかね
0094デフォルトの名無しさん2013/09/20(金) 00:00:21.68
>>93
文字コードに問題あるかも
0095デフォルトの名無しさん2013/09/20(金) 00:05:56.98
>>94
バイナリですら置けるのに関係ねーだろw
0096デフォルトの名無しさん2013/09/20(金) 00:24:15.70
SourceForgeに公開するんだ!
0097デフォルトの名無しさん2013/09/20(金) 09:23:07.43
>>90
まさかとは思うけど、SQL Server 2005の時と同じバイナリで2008R2にアクセスしてないよね?
もしADOを使っているなら、ActiveX DBのタイプライブラリとしてに何を登録している?
0098デフォルトの名無しさん2013/09/20(金) 12:20:36.37
スレチは全員帰れ!
0099デフォルトの名無しさん2013/09/21(土) 11:18:22.06
>>92
旧サーバは5年前に導入、新サーバは先月導入で、新しいCPUほど
1クロックあたりの効率も上がっているので、遅くならない
はずというのが、うちの会社の本部の見解だったのですが・・・

>>97
MicroSoft ActiveX Data Objects 2.8Library



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

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

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

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

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

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

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

>>120
一つ気になったのが、Windows server 2003の旧サーバから新サーバへ
ファイルコピーをすると、尋常ではなく遅かったことです。
この辺も関係ありそうでしょうか?
0124デフォルトの名無しさん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
0125デフォルトの名無しさん2013/09/25(水) 01:11:33.84
hdd bench
0126デフォルトの名無しさん2013/09/25(水) 01:52:48.26
>>122

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

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

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

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

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

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

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

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

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

Trueにならないようにする一番シンプルな方法を教えました
0157デフォルトの名無しさん2013/09/27(金) 20:28:06.16
IfからEnd If(かElse)までを削除すればいいと思うよ
コードもすっきりするし一番シンプルじゃないかな
0158デフォルトの名無しさん2013/09/27(金) 20:51:25.23
>>147
Dim a as String
a = "0"
If a = 0 Then
0159デフォルトの名無しさん2013/09/28(土) 01:10:55.56
VBってしょぼいね
0160デフォルトの名無しさん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
0161デフォルトの名無しさん2013/09/28(土) 12:24:12.16
vb6は日本語ドキュメントがしっかりしていた。
今は機械翻訳で適当。

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

Trueじゃん
0165デフォルトの名無しさん2013/09/28(土) 23:52:33.53
>>164
手元にIDEが無いので確認できないが、
本当にTrueになるの?
Variantじゃなくて、Stringで?
0166デフォルトの名無しさん2013/09/29(日) 00:39:46.18
他の言語のような === の厳密な比較じゃなく == の比較だから
0167デフォルトの名無しさん2013/09/29(日) 00:41:42.13
VB6って、癖つよくね?
0168デフォルトの名無しさん2013/09/29(日) 01:08:50.15
いやVB6はふつーに使いやすいと思う
0169デフォルトの名無しさん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の方が速いです。これも不可解ですねえ。
0170デフォルトの名無しさん2013/09/29(日) 02:30:17.06
>>169
サーバーだけど、ActiveDirectoryのデータベースおいてないよね?
それもSQL Serverのデータベースファイルと同じ物理ディスクに

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

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

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

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

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

ソースコードがそのまま使えて、挙動もほぼ同じってこと?
0193デフォルトの名無しさん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使用率を引き上げて処理速度を上げるような方策はないですかねえ。
0194デフォルトの名無しさん2013/10/01(火) 01:31:00.14
アホだこいつ
0195デフォルトの名無しさん2013/10/01(火) 01:46:52.78
VB6ってシングルスレッドだし
VB6互換のコンパイラ作るだけならそんなに難しくないんじゃないの
IDEまで作るなら苦労も多いだろうけど
0196デフォルトの名無しさん2013/10/01(火) 01:47:38.92
互換ってのはあくまで互換であって
性能面までVB6レベルまでに仕上げる必要もないんだし
0197デフォルトの名無しさん2013/10/01(火) 01:49:47.23
C#あたりでVB6互換のコンパイラとIDEを作ればいいんじゃね
C#って簡単そうだし
0198デフォルトの名無しさん2013/10/01(火) 04:00:15.02
>>193
共有メモリでlocalhostとか意味解らんが、>>114は試したのかね
0199デフォルトの名無しさん2013/10/01(火) 07:00:35.83
>>198
Windows server 2003のサーバから、Windows server 2008R2への
コピーが尋常ではなく遅かったのですが、「snp 無効化」の実行により解消
され、速くなりましたが、SQL serverの処理速度アップには効果なしでした。
0200デフォルトの名無しさん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分の処理差につながるような数値は出現せず
0201デフォルトの名無しさん2013/10/01(火) 13:03:16.66
>>200
http://www.experts-exchange.com/Microsoft/Development/MS-SQL-Server/SQL_Server_2008/Q_27262893.html
0202デフォルトの名無しさん2013/10/01(火) 13:27:17.39
SQLOLEDB と SQLNCLI

どっちを使うべきなのかな?
VB6でもやっぱり.net用に実装されたNative Clientを使うべきなのだろうか?
0203デフォルトの名無しさん2013/10/01(火) 13:37:17.15
細かくミリ秒単位でログだしてどこで時間食ってるか比べてみるべきだよ
そうしないと何もわからないよ
0204デフォルトの名無しさん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)
の組み合わせは推奨されていない。
0205デフォルトの名無しさん2013/10/01(火) 13:56:14.19
>>204
簡単なベンチをやってみたんだが
3万件のレコードから抽出、挿入、更新、削除とやってみたところ
SQLNCLIの方が32%〜46%程度高速となったが
なぜこんなに差が出るんだろう?
むしろOLEDBの方がシンプルで高速だと思うんだけど
まあケースバイケースなのだろうが・・・
0206デフォルトの名無しさん2013/10/01(火) 13:58:28.49
ADO = OLEDBではないのか?
0207デフォルトの名無しさん2013/10/01(火) 14:18:43.36
ADOはOLEDBのラッパー、VBやASPから使いやすくしたもの
0208デフォルトの名無しさん2013/10/01(火) 14:33:28.17
>>207
Native Clientの位置づけは?ADOとOLEDBの間?
0209デフォルトの名無しさん2013/10/01(火) 14:38:32.54
|------------------|
| SQL Server     |      
|------------------|
| Native Client    | 
|------------------|
| OLEDB        | 
|------------------|
| ADO          |       
|------------------|
| VB6          |
|------------------|
0210デフォルトの名無しさん2013/10/01(火) 14:40:05.19
>>208
ネイティブのCLI(コールレベルインターフェイス)に加えて
OLE/DBのインターフェイスとODBCのインターフェイスを
併せ持ってるモノリシックドライバー
0211デフォルトの名無しさん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           |
|--------------------|
0212デフォルトの名無しさん2013/10/01(火) 14:53:30.49
SQL Server 2012 以降は SQL Server Native Client OLE DB プロバイダーが廃止されたから注意な
0213デフォルトの名無しさん2013/10/01(火) 14:54:57.03
>SQL Server 2012 以降は

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

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

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

複数コアのうち1つだけ動いてるということだけど、
その1コアの稼働率はどんなものなの?
0231デフォルトの名無しさん2013/10/03(木) 13:45:40.27
>>230
いい加減、相手にするのやめろよ
0232デフォルトの名無しさん2013/10/03(木) 16:15:28.15
>>228
類似トラブルが発生した人が解決方法を見つけやすくなるため
0233デフォルトの名無しさん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を高性能なものに交換してくださいという結論になり
ました。
0234デフォルトの名無しさん2013/10/03(木) 18:57:05.73
>>232
なんでそんなことする必要あんの?
てめえの自己中にはつきあえねえな
0235デフォルトの名無しさん2013/10/03(木) 19:00:32.81
>>233
なんだ、早くに答え出てたジャン
機器選定で営業トークにのせられたのか
0236デフォルトの名無しさん2013/10/03(木) 19:25:58.59
>>234
必要もないし義務でもないよ、法律もないし法的拘束力もないし
解決法書くってのはただのマナーだから
0237デフォルトの名無しさん2013/10/03(木) 19:26:29.55
マナーなんてのは守る必要性はないからね
0238デフォルトの名無しさん2013/10/03(木) 20:00:41.81
>>236
てめーがやってんのはただの自己中だ
マナーならもしよろしければと枕詞を添えて丁寧に依頼するべきだ
できないのならてめーにマナーを語る資格はねえ、ちなみに俺は秘書検定一級もってる
お前は中卒資格しかもってないだろ、じゃあお前が完全に間違ってるってことだ
0239デフォルトの名無しさん2013/10/03(木) 20:01:27.95
Xeon E5-2403でCPUネックか...
稼働率25%って、単コアの話じゃないよな?
確かクライアントも同一マシンに乗ってたんじゃなかったっけ

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

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

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

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

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

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

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

なんだから、

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

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

どうやったらこんな片減りな使い方ができるのかと
逆に意図して3コア停止でもさせなければ無理だろうが?
対称型マルチプロセッシングではブート時に1CPUに固定するくらいだが
最近はUEFIでブート時もマルチコア使うわ
0255デフォルトの名無しさん2013/10/04(金) 15:16:13.07
バグでDoEventせずにループし続けるコードでも書いたんだろうよ
常時CPUに負荷がかかるような
0256デフォルトの名無しさん2013/10/04(金) 15:44:22.26
そのうちDoEvents関数を4回実行すると4コアを使用するとか言いだす奴がきそうな悪寒
0257デフォルトの名無しさん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
0258デフォルトの名無しさん2013/10/04(金) 15:54:34.40
DoEventsしないと、スレッドのコンテキストが切り替わらないのか、勉強になりました
0259デフォルトの名無しさん2013/10/04(金) 15:55:50.31
VB6時代のジングルスレッドの呪縛から逃れたい思いがあるのか
VB6からnetに移行するとマルチスレッドが不要でもすべてマルチスレッドで書く病気が3年ほど続く
そのうち意味のない事に気づき落ち着くけどな
0260デフォルトの名無しさん2013/10/04(金) 15:58:02.90
>>255の人気に嫉妬
0261デフォルトの名無しさん2013/10/04(金) 15:58:55.62
>>258
知らぬが仏で、コントロールに値を設定してDoEventsかけると予期せぬタイミングでイベント発生で泣くことになるよ?
結果、Enabled = Falseにするが、Trueにした瞬間にイベントが発生したり、そうなるともう修羅場よw
0262デフォルトの名無しさん2013/10/04(金) 16:03:14.45
イベントの正体はWindowsメッセージだからなぁ
Enabledを切ったところでメッセージは実行されずキューに溜っているだけだから
有効にした瞬間に一斉にイベントが発生しても当然の結果なんだがな
かと言って、喪失したメッセージもありで、何が有効になるかはその時のお楽しみって訳よ
修羅場と言うより占いみたいなもんだよ
0263デフォルトの名無しさん2013/10/04(金) 16:08:27.60
>>261
イベントの再入と、スレッドは別の問題だろ
0264デフォルトの名無しさん2013/10/04(金) 16:09:34.15
フックだフック
0265デフォルトの名無しさん2013/10/04(金) 16:10:39.72
>イベントの再入と、スレッドは別の問題だろ

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

それは中間言語レベルの話で速度優先で最適化してビルドしてEXE化すればほとんど関係しない
0354デフォルトの名無しさん2013/10/08(火) 22:27:59.81
ここは脳内VBの巣窟ですか
0355デフォルトの名無しさん2013/10/09(水) 00:24:59.11
VBだけじゃ何のVBかわからんだろ?この新参がw
0356デフォルトの名無しさん2013/10/09(水) 00:27:49.59
Virtual Box
03573362013/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秒
0358デフォルトの名無しさん2013/10/09(水) 03:04:01.43
VB.NETもGUIでやれよ、なんでコンソールなんだよ
0359デフォルトの名無しさん2013/10/09(水) 09:12:19.94
>>357
VB6って意外に速いんだね。道理で長い間使われ続けている訳だ。
0360デフォルトの名無しさん2013/10/09(水) 09:15:43.34
>VB6はForm1にButton1とTextBox1を貼り付けてClickイベント

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

.netはすべてJITコンパイル後の結果だけ提示しているのにVB6だけp-codeの時間載せてら(笑)
0362デフォルトの名無しさん2013/10/09(水) 09:18:51.50
VB6のコンパイル時の最適化って、現状どのオプションを有効にするのが最も効果的ですか?
0363デフォルトの名無しさん2013/10/09(水) 10:22:37.27
>>357
二つ目のForループをコメントアウトするとどちらも瞬時に終わってしまう。
計測結果はほとんどこのForループの時間だろ。
03643632013/10/09(水) 10:28:32.18
計測初めてから二つ目のな。変数の内容をswapしてるとこ。
0365デフォルトの名無しさん2013/10/09(水) 10:30:43.31
これ配列の入出力が時間のほとんどなんじゃなかろうか
0366デフォルトの名無しさん2013/10/09(水) 10:51:34.28
サーバ交換とかって泣き入れてた奴まだいるかな?
CSVだけを読み込んでDBを更新しないように修正して
サーバとWin7のテスト環境で比較してみてはどうだろうか
0367デフォルトの名無しさん2013/10/09(水) 11:35:12.94
言うだけ無駄だとなぜ学習しない
0368デフォルトの名無しさん2013/10/09(水) 12:19:47.19
>>357
ダメな比較テストだな
どうしてもう少し頭を使えないもか
ゆとり世代?
0369デフォルトの名無しさん2013/10/09(水) 12:20:28.27
>>365
だ罠
0370デフォルトの名無しさん2013/10/09(水) 12:21:35.04
本人は非の打ちどころがない自信満々のソースなので手加減よろしく
0371デフォルトの名無しさん2013/10/09(水) 12:39:39.38
おk
0372デフォルトの名無しさん2013/10/09(水) 13:58:47.81
配列のソートについてはVB.NETの優位が示せたじゃん。
Array.Sort()ならもっと早くなるし。
0373デフォルトの名無しさん2013/10/09(水) 14:06:52.09
そんなレアケースで自慢されましても・・・
0374デフォルトの名無しさん2013/10/09(水) 14:10:36.89
100万行のテキストを加工してファイル出力するプログラムとかで比較してみればいいんじゃね
0375デフォルトの名無しさん2013/10/09(水) 14:18:29.04
それだとほとんど差が出ない、いや、むしろVB6の方が高速だろう
0376デフォルトの名無しさん2013/10/09(水) 18:44:53.80
VB6でのCSV読み込み
�@input#
�AFileSystemObjectで1行読んできてSplit
�Bその他
どれ使ってる?
0377デフォルトの名無しさん2013/10/09(水) 19:08:10.54
Line Input # で1行読んできてSplit
0378デフォルトの名無しさん2013/10/09(水) 19:41:50.86
ダブルクォートの中に,が含まれている場合はSplit使えないよね
0379デフォルトの名無しさん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
0380デフォルトの名無しさん2013/10/09(水) 21:12:57.80
古いBASICにあるREADとDATAを作ってみました
0381デフォルトの名無しさん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
0382デフォルトの名無しさん2013/10/09(水) 22:27:42.41
古いBASICみたいにPOINTが扱えないのかVB6は、座標がSingle型だから不正確なのか・・・
0383デフォルトの名無しさん2013/10/09(水) 22:32:48.04
は?
0384デフォルトの名無しさん2013/10/09(水) 22:35:41.25
windowsのグラフィックスがvolatileだからでないかい
いつ消えるかわからなくて、消えたらWM_PAINTで書き直す
03853362013/10/09(水) 22:47:14.29
>>363
ご指摘のとおり、昔のソースなんで勘違いしてた
後半の2つのループは最適化除けのためのまじないでした
javaのserver VMだと凶悪な最適化をしてくるので用心した

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

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

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

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

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

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

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

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

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

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

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

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

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

標準コントロールを一切使わず純粋にVB6のコードだけで作ったアプリなら
Windows 7のようにVB6ランタイムが標準装備のOS下ではオープンソースも機能的に成り立つ罠
0444デフォルトの名無しさん2013/10/15(火) 23:38:13.06
今すぐ使いたいアプリがソースコードのみ公開とかムカつくだけだけどな
linuxとか使っててブチ切れそうになった
0445デフォルトの名無しさん2013/10/15(火) 23:39:56.83
コンパイラが吐きだしたバイナリってコンパイラが機械語で書いたコードなんだから著作権はコンパイラ自身にあるべきだよな
0446デフォルトの名無しさん2013/10/15(火) 23:40:31.51
Linux用のオープンソースアプリがある
↓
それをWindowsで動かそうとする。ライブラリがないから動かない。→ オープンソースじゃないのではないか?
↓
Windowsでもライブラリがあれば動くから、オープンソースなのだ! ★
↓
だったら逆を考えてみよう
↓
Windowsのアプリを、Linuxで動かせれば、オープンソースなのだ!
↓
動かない?
↓
WINE使えば動くよ。→動くならオープンソースでいいよね!
↓
WINEでWindows APIは実装されているけど、それ以外のライブラリは実装されてないよ。
↓
でもオープンソースで互換ライブラリ作れば動くよね?
↓
Linuxでもライブラリがあれば動くから、オープンソースなのだ! (★と同じ)


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

>>446
0449デフォルトの名無しさん2013/10/15(火) 23:45:26.42
GPLはオープンソースである。

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

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

>>446
0455デフォルトの名無しさん2013/10/15(火) 23:49:53.63
>>453
そういう意味のないオープンソースを広めた連中がオープンソースを弱体化させた訳だが?
0456デフォルトの名無しさん2013/10/15(火) 23:52:05.02
>>452
オープンソースのアプリがあったとして、

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

オープンなものと、オープンでないものを一緒に配布しても良い。
一緒に配布したもののうち、オープンなものだけがオープンってだけの話。
0477デフォルトの名無しさん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に従ってプロプライエタリ側のソースも提供する必要がある。
プロプライエタリのコードというのはソースが無い場合が多いし、改造や再配布を禁じる場合がほとんど。

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

全然関係ないじゃん。

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

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

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

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

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

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

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

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

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

機能するために動的リンクするファイルが必須である場合もソースコードのファイルだけであれば頒布は可能だし
その動的リンクするファイルでさえ、それ自体がオープンライセンスに帰属するものであれば同梱して頒布可能。
但し、少なくともMicrosoftの著作物である以上はオープンソースとして扱う事は不可能である。
また、サードパーティー製であっても頒布ロイヤリティは不要としてもオープンソースとして認めていないのが一般的。
よって、オープンソースとする場合VB6のソースコード意外に頒布可能なのはコンパイルしたEXEや自作の
OCX、DLL等外部リンクするファイルくらいであるのが現実的解釈ということ。
0495デフォルトの名無しさん2013/10/16(水) 17:00:25.46
今更VB6のソースとかばら撒くとか意味あるのかねえ
0496デフォルトの名無しさん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しか組めないような人もいないとは思うけど、一応老婆心。
0497デフォルトの名無しさん2013/10/16(水) 21:02:54.97
>>496
Windows 7 SP1でVB6でMdac 6.0を使ったDB接続するプログラムをWindows 7 SP1以前で走らせると
DB接続時にエラーになる問題があったけど、今は修正タイプライブラリで問題が発生しなくなっている
あの時はVB6というか非.netでのADO接続がサポート終了を覚悟したもんだが、Azureはガチっぽいね
0498デフォルトの名無しさん2013/10/17(木) 10:04:49.32
VB6 ヲワタ・・・
0499デフォルトの名無しさん2013/10/18(金) 09:09:41.21
>>498
もう10年前に終わっていますが?
何を今更w
0500デフォルトの名無しさん2013/10/18(金) 09:25:17.08
>>498
VBは統合コンパイラじゃなくて、コンパイラとリンカの分離特化型で進化していけば
まだ使えるのにな!
0501デフォルトの名無しさん2013/10/18(金) 09:37:43.38
VB6がどうたらよりも、VBの.net版の言語仕様があまりに半端すぎる。
VB6から新たにC#を勉強するのと同じくらいの手間がかかる。
少なくともVB6ユーザーが使いたいとは思わないだろうが、一体誰が使っているのだろう?
結局VB6プログラマが.netへの移行をスムーズに行えなかったのは.net版VBの影響が大きいと思う。
0502デフォルトの名無しさん2013/10/18(金) 11:14:42.85
>>501
VB6プログラマの高齢化による思考力低下の影響のほうが大きいだろ
0503デフォルトの名無しさん2013/10/18(金) 11:28:07.18
うちの現場では,NET 1.xは見送って
VB6をNET2.0(VS2005)が出るまで使い続けた
VB6使った期間が長かったんだよね
0504デフォルトの名無しさん2013/10/18(金) 16:13:43.89
>>502
特に20代、若くて頭の足りない年代も色々問題があるどな。
最低限人間としての心遣いができないものかね?
なぜそんなところにボタンを配置する?そのデザインで使う人が使いやすいと思う?
若くてもトータル的に心配りが出来る奴はいるんだけどね。僅かだが。
0505デフォルトの名無しさん2013/10/18(金) 17:23:44.54
旧VBも5あたりまでボロクソ言われてたし
当時の我々も未熟だったし
当時の上司も時代錯誤だったし

歴史は繰り返す
0506デフォルトの名無しさん2013/10/18(金) 21:09:51.61
VB6ユーザーはWindows Azureやばいね
0507デフォルトの名無しさん2013/10/18(金) 21:19:33.05
Windows アバズレ?
0508デフォルトの名無しさん2013/10/18(金) 21:34:08.47
Microsoft Windows Azure - Wikipedia
http://ja.wikipedia.org/wiki/Microsoft_Windows_Azure
0509デフォルトの名無しさん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
0510デフォルトの名無しさん2013/10/20(日) 22:26:21.70
templateはマクロみたいなものだし
そりゃできるよ
0511デフォルトの名無しさん2013/10/21(月) 10:24:23.63
代わりに実装継承ができないけどね。
C++はできるけど。
0512デフォルトの名無しさん2013/10/21(月) 10:50:17.25
>>509
C++しらないんだけど、funcメソッドがなかったり引数の型が違ってもビルド通る?
0513デフォルトの名無しさん2013/10/21(月) 15:22:45.57
http://ideone.com/
というサイトは
ソースコードを投稿すると
それをコンパイルして実行した結果を表示してくれるサイトだよ
05145092013/10/22(火) 10:30:42.14
わりぃ、ソース書き換えてコンパイル通しなおすのめんどくさいからあきらめた。
0515デフォルトの名無しさん2013/10/30(水) 01:52:55.71
プログラム著作権について by 弁理士青木修ウェブサイト
ttp://www.indigobullet.com/info-d/programCopyright.html
>スタティックリンクによるライブラリの使用
>ダイナミックリンクによるライブラリの使用
0516デフォルトの名無しさん2013/10/30(水) 19:47:43.27
コピペマン参上!まで読んだ。
0517デフォルトの名無しさん2013/11/03(日) 14:02:11.89
長年VBやってると自分用のライブラリがたくさんできるでしょ
計算用、ファイル操作用、通信用・・
もう30ファイルくらいできてるのだけど
そのライブラリ同士で引用しあってて
例えば、計算用のライブラリだけ使うつもりが、コンパイルすると
ここが未定義ですとエラーになって、使わないけど足りないライブラリもプロジェクトに含めると
さらにそこから未定義の参照があって・・・

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

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

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

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

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

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

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

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

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

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

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

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

Next


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

Next
でおk
0551デフォルトの名無しさん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
0552デフォルトの名無しさん2013/11/08(金) 22:05:26.82
なんだそのコロン
0553デフォルトの名無しさん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
0554デフォルトの名無しさん2013/11/08(金) 22:22:32.89
Option()で複数の要素がTrueになる可能性があるからなぁ。
0555デフォルトの名無しさん2013/11/08(金) 22:34:38.77
>>554
たとえば複数のOptionがコンテナのFrameに入っている時、TrueになるOption要素は1つなのだから
TrueになったOptionのIndexの値がFrameの値にるとか出来なかったのかな?
AccessもVBAになってからは出来るのかどうか知らないけど、以前は使えて便利だったんでそう思った次第
0556デフォルトの名無しさん2013/11/08(金) 22:58:46.89
Sub Option1_Click(Index As Integer)
Option1(0).Tag = Index
End Sub
0557デフォルトの名無しさん2013/11/08(金) 23:25:55.35
>>556
何の解決にもなっていない件
0558デフォルトの名無しさん2013/11/08(金) 23:31:34.40
Select文にコロンつけてやると他の言語のSwitch文に似た感じになってややこしい
0559デフォルトの名無しさん2013/11/09(土) 08:20:35.69
>>555
VB6が用意してくれない以上は自分でつくるよりないなぁ。
コントロール配列じゃないOptionButtonもあるから単純にIndexを返すってわけにはいかないが
0560デフォルトの名無しさん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
0561デフォルトの名無しさん2013/11/09(土) 09:40:25.36
>>551
VB6で10年開発やってたけど、その方法があることに気が付かなかった
目から鱗だわwww


他にも面白業があったら教えてチョンマゲ!
0562デフォルトの名無しさん2013/11/09(土) 09:42:15.95
>>561
http://homepage1.nifty.com/rucio/main/technique/Select.htm
0563デフォルトの名無しさん2013/11/09(土) 09:45:15.81
意外とって言う割には大したこと無いよね。
C言語ぐらいには勝ってるだけ。
0564デフォルトの名無しさん2013/11/09(土) 09:58:15.87
C言語、カワイソス・・・
0565デフォルトの名無しさん2013/11/09(土) 12:28:59.72
Select CaseのCaseがCのswitchよりも自由でいいじゃん
0566デフォルトの名無しさん2013/11/09(土) 13:39:51.66
>>561
こんな馬鹿な「技」に感心してどうする。
これなら普通にIFで書いた方がストレートで可読的だし記述に必用な行数も縮まる。
要するに、こんなコード書く奴は馬鹿丸出し
0567デフォルトの名無しさん2013/11/09(土) 14:06:19.72
>>565
cのcaseはジャンプテーブルを使った最適化を念頭に置いた仕様になってる。
単純にif-elseifのシノニムの方が機能的には上なんだけど。
0568デフォルトの名無しさん2013/11/09(土) 14:10:12.11
>>567
ジャンプテーブルはVB6でもなる。
いくつか条件はあるだろうけど、
少なくともC言語と同じ使い方をした場合は
きちんとジャンプテーブルになってる。
これは逆アセンブルまでして確認した。
0569デフォルトの名無しさん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) & "が選択されました"
0570デフォルトの名無しさん2013/11/09(土) 15:21:17.31
>>569
Indexとんでるとエラーかの
0571デフォルトの名無しさん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
0572デフォルトの名無しさん2013/11/09(土) 16:53:13.66
>>569
ロジックとしてはダメダメだけど
今までLBoundとUBoundって配列の添え字の下限上限評価にしか使ったことが無かったけど
曲がりなりにもこういう使い方が出来るのを初めて知った。ありがとう!

>>571
フォームにあるOptionの値が無条件に評価されるだろそれ?
アホちゃう?
0573デフォルトの名無しさん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
0574デフォルトの名無しさん2013/11/09(土) 17:03:46.19
あとは任意のFrameの上にのっかってるかどうかの判断をくっつければいいっすな
0575デフォルトの名無しさん2013/11/09(土) 17:07:37.05
>>570
配列風なのに部分的抜けるとかVBはマジキチ
0576デフォルトの名無しさん2013/11/09(土) 17:08:24.15
For i = 0 To 10
Load Option1(i)
Next i
Unload Option1(5)
とか
0577デフォルトの名無しさん2013/11/09(土) 17:17:56.77
Indexプロパティで値入力できるものな
0578デフォルトの名無しさん2013/11/09(土) 17:28:52.91
>>574
配列の途中が抜ける事ができる言語のほうが多いと思うけど?
0579デフォルトの名無しさん2013/11/09(土) 17:30:26.15
配列の順次アクセスとか信用してはならない
0580デフォルトの名無しさん2013/11/09(土) 17:32:12.78
安価つけてる奴
おまえはスレを再読み込みしろ
レス番が間違ってるぞ
0581デフォルトの名無しさん2013/11/09(土) 17:38:49.04
順次チェックをする際はNullチェックとかNothingチェックとかNILチェックは欠かさずやりましょう
0582デフォルトの名無しさん2013/11/09(土) 17:41:43.04
EmptyやUndefinedもあるよ!
0583デフォルトの名無しさん2013/11/09(土) 19:18:36.92
初期化していない動的配列を識別する方法知ってたら天才らしいが
もちろんココにそんな凄い人がいる訳もなく
大人しくゼロで初期化してから使うしかないのよねぇ・・・あほくさぁぁぁぁ!
0584デフォルトの名無しさん2013/11/09(土) 19:25:30.77
天才 変態

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

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

Resim → Redim

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

Dim existArr As Booelan
Dim arr() As Integer

If Not existArr Then Redim arr(100)
0596デフォルトの名無しさん2013/11/09(土) 19:56:24.08
If Not existArr Then Redim arr(100): exsitArr = True
0597デフォルトの名無しさん2013/11/09(土) 19:56:35.41
>>595
スマートじゃないな
0598デフォルトの名無しさん2013/11/09(土) 19:57:32.53
言語仕様でどうにか出来ないか?って事だろ?
0599デフォルトの名無しさん2013/11/09(土) 20:01:51.64
プログラマなら、言語仕様の問題を
自作のライブラリで解決しろよ・・・。
0600デフォルトの名無しさん2013/11/09(土) 20:04:11.28
安易にフラグを使い始めるのが糞コードの始まりw
0601デフォルトの名無しさん2013/11/09(土) 20:06:14.95
うん、だからライブラリを作ればいいと。
0602デフォルトの名無しさん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
0603デフォルトの名無しさん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
0604デフォルトの名無しさん2013/11/09(土) 20:29:50.51
コピペ乙
0605デフォルトの名無しさん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
0606デフォルトの名無しさん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
0607デフォルトの名無しさん2013/11/09(土) 21:03:37.85
だからバリアントを使ったら負けだと思ってよ
0608デフォルトの名無しさん2013/11/09(土) 21:04:44.07
Variantどころか全てVariant相当の言語が
普通に使われてるのに、何言ってんだ?
0609デフォルトの名無しさん2013/11/09(土) 21:14:21.47
イミフ
0610デフォルトの名無しさん2013/11/09(土) 21:47:14.27
動的配列なんてつかわずにCollection使えよといいたかったけど
Collectionて基本データ型の相性が悪いよな
0611デフォルトの名無しさん2013/11/09(土) 23:05:56.46
>>607
なんでバリアント使ったら負けなん?
0612デフォルトの名無しさん2013/11/09(土) 23:13:58.45
ルールブックにそう書いてあるんでそ
0613デフォルトの名無しさん2013/11/09(土) 23:28:57.54
じゃあVal()とかも使わないのか
0614デフォルトの名無しさん2013/11/09(土) 23:29:29.90
Left()じゃなくLeft$()とかバリアント返す関数は片っ端から使えないね
0615デフォルトの名無しさん2013/11/09(土) 23:39:51.39
バリアントを引数にとる標準関数もダメですね
0616デフォルトの名無しさん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許容型というのも出来たけどね。
0617デフォルトの名無しさん2013/11/10(日) 00:02:09.83
Q、ここは質問スレですか?雑談スレですか?
A、兼用。
0618デフォルトの名無しさん2013/11/10(日) 00:03:16.45
自己解決しますた
0619デフォルトの名無しさん2013/11/10(日) 00:03:23.23
まさにバリアントワネット
0620デフォルトの名無しさん2013/11/10(日) 00:29:57.00
バリアントワネットワークってなに?
0621デフォルトの名無しさん2013/11/10(日) 02:22:31.88
バリアントワネッワーキングじゃね
0622デフォルトの名無しさん2013/11/10(日) 06:33:28.94
>>616
Null のためだけに Variant 使うのはちょっと微妙だな。
俺なら、例えば Integer と Boolean でやるかな。
それより Excel からデータを読み出す時とかは Variant にせざるを得ない。
0623デフォルトの名無しさん2013/11/10(日) 11:59:47.03
構造体をCollectionに入れる方法ないっすか?
Classにするのはなしで
0624デフォルトの名無しさん2013/11/10(日) 13:31:53.27
VBのCollectionにそんな制限ないと思ったけど...
っていうか配列から自分で作ってもたいした手間じゃないと思うけど
0625デフォルトの名無しさん2013/11/10(日) 16:41:40.73
構造体の定義位置の問題を解決しないとCollectionには入れられないよ
0626デフォルトの名無しさん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
0627デフォルトの名無しさん2013/11/10(日) 16:44:27.83
コンパイルエラー
パブリック オブジェクト モジュールで定義されたパブリック ユーザー定義型に限り、
クラス モジュール内のパブリック プロシージャの引数または戻り値、またはパブリック ユーザー定義型の要素として使用することができます。

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

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

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

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

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

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

・・・だったと思う。手元にVBの環境がないので確認できない。
0632デフォルトの名無しさん2013/11/11(月) 06:43:07.22
>>629
うろ覚えでよくこんな適当なこと書けるなあ...
0633デフォルトの名無しさん2013/11/11(月) 13:56:38.19
>>629
多分それActiveXコンポーネントのクラスの場合の話
0634デフォルトの名無しさん2013/11/11(月) 16:11:04.65
>>627の「パブリック オブジェクト モジュール」てのはなんだろう?
0635デフォルトの名無しさん2013/11/11(月) 18:38:54.54
標準モジュールとか言われてたやつじゃないか?
0636デフォルトの名無しさん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
0637デフォルトの名無しさん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
0638デフォルトの名無しさん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
0639デフォルトの名無しさん2013/11/11(月) 18:57:58.93
拡張子vpsファイルに書いてある各設定値の意味を知りたい
0640デフォルトの名無しさん2013/11/11(月) 18:58:36.65
タイプミスった

拡張子vbpファイルに書いてある各設定値の意味を知りたい
0641デフォルトの名無しさん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

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

これが出来ないな
0645デフォルトの名無しさん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 値などの特別な値を持つことができる特別なデータ型。
0646デフォルトの名無しさん2013/11/11(月) 19:23:52.74
variantにセットできるユーザー定義型は関数の引数渡しだけだった気が汁
0647デフォルトの名無しさん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
0648デフォルトの名無しさん2013/11/11(月) 19:29:29.98
Cの構造体未満な価値しかないユーザ定義型
0649デフォルトの名無しさん2013/11/11(月) 20:02:58.21
>>636
クラスモジュールのことみたいだな
で、クラスモジュールに定義できるのはクラスだけ

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

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

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

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

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

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

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

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

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

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

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

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

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

ライブラリまで全部変換しないといけない
その中にはサードパーティのライブラリもあるかも知れないしさ。
0698デフォルトの名無しさん2013/11/24(日) 01:08:00.40
.NetFramework亡くしてくれたらVS2013使ってもいい
0699デフォルトの名無しさん2013/11/24(日) 01:30:37.76
>>698
なん・・・だと・・・。
0700デフォルトの名無しさん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に固執する必要は無いと思います)
0701デフォルトの名無しさん2013/11/25(月) 08:33:10.85
うちはVB4,5が現役
0702デフォルトの名無しさん2013/11/27(水) 20:00:36.19
DLLヘルを知らない世代なのか
0703デフォルトの名無しさん2013/11/30(土) 14:13:18.18
>>702
DLLヘルは心得ています。
基本的にsystemroot\SysXXX99\ 配下にはCOM抽出したコンポーネントを配置しないようにしています。
それでも問題が起こることはありますがそれなりに対処していますよ。
逆に最近の大手業者の製品は.NetF/W上で動くアプリが多いです。
.NetFrameworkの製品はバージョン間の問題はありませんか?
0704デフォルトの名無しさん2013/11/30(土) 14:19:48.39
VB6が作られた時代の環境を知っていれば心得ることなんかできないw
0705デフォルトの名無しさん2013/11/30(土) 15:00:55.17
舌足らずで申し訳ありません。
自作の製品については責任をもって対応しているという意味です。
知識としては当時のVBやCマガジンの特集や米MSサイトで得た程度の内容です。
0706デフォルトの名無しさん2013/11/30(土) 15:38:17.21
最近まどかさんを見ませんが元気でしょうか
0707デフォルトの名無しさん2013/11/30(土) 15:41:42.08
まーどっかにいるんじゃない?
0708デフォルトの名無しさん2013/11/30(土) 16:59:25.04
飛びます飛びますの人だっけ?
0709デフォルトの名無しさん2013/11/30(土) 17:44:18.38
とんで、とんで じゃねーの?
0710デフォルトの名無しさん2013/11/30(土) 18:10:41.29
とんでとんで、
回って回って、
おちる〜!
だっけ?

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

http://eternalwindows.jp/windevelop/console/console00.html
0716デフォルトの名無しさん2013/12/01(日) 18:45:54.18
>>714
邪悪なのは、VB6使いではなく
VB6アプリを使ってる会社。
0717デフォルトの名無しさん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
0718デフォルトの名無しさん2013/12/01(日) 19:18:30.39
WSHだと標準入出力が出来るだけでコンソールの画面クリアとか書き込み位置指定とか出来ないんじゃないの
0719デフォルトの名無しさん2013/12/01(日) 19:20:56.08
コンソールが使えるからと言ってコンソールアプリではない
VB6のコンパイラでは純粋なコンソールアプリにはならないらしいよ
0720デフォルトの名無しさん2013/12/01(日) 19:25:14.85
ダメなのか
やっぱVB.NETに移る死かないか
0721デフォルトの名無しさん2013/12/01(日) 19:33:46.15
AllocConsole()はね
0722デフォルトの名無しさん2013/12/01(日) 19:46:04.34
VB6使いに破滅を!
0723デフォルトの名無しさん2013/12/01(日) 20:01:39.12
なるほどね、AllocConsole()で取得したコンソールは自由自在に呼び出せるけど
起動元のコマンドプロンプトは取得できないのね
0724デフォルトの名無しさん2013/12/01(日) 20:04:51.03
AllocConsole()を呼び出す前にGetStdHandle()を呼び出すと成功はするもののそこで得られたハンドルにWriteConsole()しても失敗する
AllocConsole()を呼び出した後の取得したコンソールになら自由自在に操れる
やはりVB.NETに素直に移行するしかないか
0725デフォルトの名無しさん2013/12/01(日) 20:11:49.38
>>717の言うとおり
editbin /subsystem:console vbxxx.exe
をしたら
呼び出し元のコンソールに出力した
しかもAllocConsole()も呼び出し後の出力も呼び出し元のコンソール上になった
0726デフォルトの名無しさん2013/12/01(日) 23:35:09.29
ナルボドね
つまり移行するしかないわけだ
0727デフォルトの名無しさん2013/12/02(月) 00:07:16.08
移行を即している人ってなんなの
即身仏なの?
0728デフォルトの名無しさん2013/12/02(月) 00:17:01.28
移行しないなんておかしな人達だなぁ
0729デフォルトの名無しさん2013/12/02(月) 09:38:27.65
促←うなぎ
0730デフォルトの名無しさん2013/12/02(月) 23:18:54.05
移行を促している人ってなんなの
促成栽培なの?
0731デフォルトの名無しさん2013/12/02(月) 23:25:29.14
>>725
そのAllocConsoleは失敗してるから、ステータス見てみろ
0732デフォルトの名無しさん2013/12/03(火) 03:07:39.26
見てみた
0733デフォルトの名無しさん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にそっくりなのな、これは覚えやすい
0734デフォルトの名無しさん2013/12/03(火) 20:23:10.76
http://msdn.microsoft.com/ja-jp/library/e8ae41a4.aspx

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

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

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

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

なにが入るんだろうか。
0767デフォルトの名無しさん2013/12/27(金) 23:24:46.82
BVUnit - VB6用ユニットテストフレームワーク
http://bvunit.sourceforge.jp/
0768デフォルトの名無しさん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は・・・?
0769デフォルトの名無しさん2013/12/28(土) 15:05:42.58
>>768
VB6 用だし
0770デフォルトの名無しさん2013/12/28(土) 15:11:05.83
>>769
なるほど。
0771 【196円】 【大吉】 2014/01/01(水) 00:45:46.21
今年ことVB6が全駆除されますように
0772デフォルトの名無しさん2014/01/01(水) 22:23:11.03
VBアップグレードコンパニオンのVisualStudio2013対応版を試してみた。
相変わらずご愛嬌の域を出ておらず、使えません。。
http://mobilize.net/solution/vb-upgrade-companion/
0773デフォルトの名無しさん2014/01/01(水) 22:26:39.69
InstallShield2013も遂にVB6をサポートしなくなったぞ

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

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

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


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

select * from T where ID = @ID

@IDをパラメータにしたいのですがうまくいきません
以前ADO.NETでやった時は確かこんな感じでパラメータクエリを作れたと思ったのですが
この環境ではパラメータクエリは使えないのでしょうか?
0806デフォルトの名無しさん2014/01/08(水) 04:34:03.92
>>805
ADOのプレースホルダは?
つかヘルプ見るなりググるなりすれば解決するだろうに
0807デフォルトの名無しさん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 : クラスはオートメーションまたは予測したインターフェースをサポートしていません

何故でしょうか???
0808デフォルトの名無しさん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
0809デフォルトの名無しさん2014/01/08(水) 20:40:12.29
>>808
ありがとうございます。
早速やってみます。
0810デフォルトの名無しさん2014/01/08(水) 21:26:41.07
つか一連のADO関連のは同一人物か
いまさらVB6で、しかもADOとか、正気とは思えん
0811デフォルトの名無しさん2014/01/08(水) 23:27:23.99
.NETへのリプレースはまだまだ需要があるからADOを教える価値はある
リプレースの案件は.NETだけ知っててもろくな事にならないからね
0812デフォルトの名無しさん2014/01/08(水) 23:33:07.42
>>810
VB6はまだまだ現役
新規案件のカスタマイズプログラムをVB6で開発して納めることも
結構あるよ
0813デフォルトの名無しさん2014/01/08(水) 23:40:17.63
>VB6はまだまだ現役
出世?
生涯現役だもんで
0814デフォルトの名無しさん2014/01/08(水) 23:59:12.48
それは多分、もう死んでることに自分で気が付いてないだけ
0815デフォルトの名無しさん2014/01/09(木) 00:26:51.11
>>812
そうなんだー
0816デフォルトの名無しさん2014/01/09(木) 22:50:55.72
VB6の亡霊を成仏させなければ
0817デフォルトの名無しさん2014/01/09(木) 23:42:45.92
>>810
VB6SP6, DAO, ADOStream を現役で使っていますが何がダメなのですか?
今夜もビルドして毎日納品していて問題ありませんよ
0818デフォルトの名無しさん2014/01/10(金) 00:43:37.81
↓.NET派の指摘が楽しみ。
0819デフォルトの名無しさん2014/01/10(金) 01:08:41.10
LeftとかTopプロパティって実数だたんだ
インチやcmの場合もあるし、そうだわな
0820デフォルトの名無しさん2014/01/10(金) 01:34:41.24
vb6は糞みたいな暗黙変換とかデフォのプロパティとか危険がいっぱいで素人には任せられない
0821デフォルトの名無しさん2014/01/11(土) 18:13:11.25
本屋でVBの本を開き、VBのサンプルって時計ばっかりと素人女がわめいていた
0822デフォルトの名無しさん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
スクロールバーにフォーカスがあるときは[←][→]キーでコマ送りできます
0823デフォルトの名無しさん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
0824デフォルトの名無しさん2014/01/12(日) 14:17:03.25
Min=-1,Max=10にして、
Changeイベントで、
 -1になったら9にする
 10になったら0にする
0825デフォルトの名無しさん2014/01/12(日) 14:18:30.58
ありがとうございました
それしかないですよね
0826デフォルトの名無しさん2014/01/12(日) 14:25:34.19
modでいいだろ
ただしオーバーフローには関与しない
0827デフォルトの名無しさん2014/01/12(日) 15:04:35.65
>>826
今時そういう中二病っぽい「テクニック」を使う奴はダメグラマ。
0828デフォルトの名無しさん2014/01/12(日) 15:06:13.98
普通のコードを中二病とかいうのなんで?

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

.netのVBに慣れるとVB6の言語仕様を忘れてしまう。たまにVB6で作ると実行エラーの山。
.netのVBからC#へ変換するコンバータに非常に良いものがあって
これを使って作る時はVBで、提出するときはC#で、社内ではVBとC#の両方できるプログラマーとして
重宝されている。
0945デフォルトの名無しさん2014/01/28(火) 10:15:13.69
なぜかC#からVBに変換するソフトはダメダメなものが多い
0946デフォルトの名無しさん2014/01/28(火) 20:02:43.37
>.netのVBからC#へ変換するコンバータに非常に良いものがあって
お勧めのコンバータを一つ上げて下さい
0947デフォルトの名無しさん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
0948デフォルトの名無しさん2014/01/28(火) 20:31:31.73
プロジェクトファイルからの変換だとさすがに綺麗に変換されるな。
アセンブリからの逆コンパイルで作ったソースはかなり見にくい。

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

ちょろい奴だと、バイナリエディタで「シリアル番号が違います」のメッセージを検索して
その付近にシリアル番号がそのまま埋め込まれている事もあるよ。
0950デフォルトの名無しさん2014/01/28(火) 21:08:22.99
>>947
どうせそのツールも買わずに割ったんだろ?
0951デフォルトの名無しさん2014/01/28(火) 22:41:38.27
割りに対してはVB6は最強レベルってこと?
これが理由でVB6を使い続ける向きもあるだろうな
0952デフォルトの名無しさん2014/01/28(火) 22:42:51.67
変換ツールでうまくいったためしがない
0953デフォルトの名無しさん2014/01/28(火) 22:57:11.50
変換ツールって何をどう変換するの?
0954デフォルトの名無しさん2014/01/29(水) 11:51:31.48
VB6でビットコイン作りたいねんけど
0955デフォルトの名無しさん2014/01/29(水) 12:03:32.86
>>952
どの言語使っても一緒じゃーんっていうプレーンなコーディングを心がけるのがよい
0956デフォルトの名無しさん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を外せないのと同様に
開発プラットフォームから安易に外せないとでも言うのだろうか?
0957デフォルトの名無しさん2014/01/29(水) 12:05:46.20
VB6のActiveX EXEもC++に変換してくれるの?
0958デフォルトの名無しさん2014/01/29(水) 12:07:40.41
サポート代金払ってくれるお得意様がいるんじゃね
0959デフォルトの名無しさん2014/01/29(水) 12:08:25.26
>>957
VB6のソースがプロジェクトレベルで揃っていれば余裕
VB6のユーザーコントロールさえC++どころかDelphiにも移行できたよん
0960デフォルトの名無しさん2014/01/29(水) 12:11:31.57
>>958
大企業の開発部門の技術革新は象の様に遅いからな
COBOLしかできない長老がトップに居たりするし
それが既得権益だと思っている

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

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

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

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

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

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

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

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