なぜVBは扱いが低いのか (200レス)
なぜVBは扱いが低いのか http://mevius.5ch.net/test/read.cgi/gamedev/1284400196/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
138: 名前は開発中のものです。 [sage] 2013/01/25(金) 23:27:51.17 ID:qyysk8iw っつ〜か、仕事でVB6を使ったんだがVB2010のほうが簡単だった タダで使えるから未だにVB6を使ってるなら乗り換えたほうが賢明かと http://mevius.5ch.net/test/read.cgi/gamedev/1284400196/138
139: 名前は開発中のものです。 [] 2013/01/29(火) 13:09:02.23 ID:fF0fMRN2 >>138 VB2010はvatptr関数とかないのよ。 APIがポインタを要求してきたときに、VB6のありがたみが嫌というほどわかる。 http://mevius.5ch.net/test/read.cgi/gamedev/1284400196/139
140: 名前は開発中のものです。 [] 2013/01/29(火) 13:20:39.02 ID:fF0fMRN2 おっとスペル間違えた。 VarPtr関数です。VB2010だとガベージコレクタがらみで、ややこしい処理 になるのよ。 http://mevius.5ch.net/test/read.cgi/gamedev/1284400196/140
141: 名前は開発中のものです。 [] 2013/01/29(火) 13:53:27.75 ID:fF0fMRN2 ちなみに文字列のポインタをAPIに渡そうと思うとVB2010の場合こんなふうになったまった。 Dim Str As String = "AAAA" Dim L As Integer Dim C() As Char Dim B() As Byte Dim G As GCHandle Dim Ptr As IntPtr C = Str.ToCharArray() B = System.Text.Encoding.GetEncoding("Shift_JIS").GetBytes(C) L = UBound(B) + 1 'サイズを指定する必要がある場合に使う G = GCHandle.Alloc(B, GCHandleType.Pinned) Ptr = G.AddrOfPinnedObjec
t().ToInt32() http://mevius.5ch.net/test/read.cgi/gamedev/1284400196/141
142: 名前は開発中のものです。 [] 2013/01/29(火) 14:05:52.11 ID:fF0fMRN2 ポインタ使い終わったら G.Free でガベージコレクタを開放します。 面倒だわVB2010。 http://mevius.5ch.net/test/read.cgi/gamedev/1284400196/142
143: 名前は開発中のものです。 [sage] 2013/01/29(火) 21:31:41.37 ID:z3bnl1cO C#とVBの速度は基本的に同じ。(C#でポインタ使ってる部位を除く) 初心者にVBのどの辺が優しいのだのかが疑問だ。 VB Dim i As Integer = 0; C#, Java, C++ int i = 0; http://mevius.5ch.net/test/read.cgi/gamedev/1284400196/143
144: 名前は開発中のものです。 [sage] 2013/01/30(水) 07:43:13.65 ID:TcumX8ss VBは後ろに;を付けなくて良い点とインテリセンスが強力な点が初心者向けなんだよ。 まあ、複数行に渡る命令を書く場合や、メモリー使ったりする場合には面倒だが。 http://mevius.5ch.net/test/read.cgi/gamedev/1284400196/144
145: 名前は開発中のものです。 [sage] 2013/01/30(水) 07:55:35.07 ID:TcumX8ss まあ、VBでメモリー使う場合は配列使うけどな 動的メモリーはVBでは使わん あと、VBはExcelとかと連係する場合に楽だな http://mevius.5ch.net/test/read.cgi/gamedev/1284400196/145
146: 名前は開発中のものです。 [] 2013/01/30(水) 13:13:47.38 ID:ES7+KnHm 思うんだが、VBやVC#のガベージコレクタって、そんなにパフォーマンスに 影響するもんなの? メインメモリを効率良く再配置してくれるといっても、コード組む側からしたら、 ポインタを使うとき、データを勝手に移動されないように、いちいちロックしないと いけないので、面倒極まりないんですけど。 もしかしたら、メモリの開放忘れてメモリリークさせるバグが多かったので、 それを防止する為につけたのかもしれないけど…。 Vistaのせいかな?あのころ、メモリ
不足でパフォーマンスが落ちるPCが多かったからな。 でも .net って Vista より先じゃなかったっけ? http://mevius.5ch.net/test/read.cgi/gamedev/1284400196/146
147: 名前は開発中のものです。 [sage] 2013/01/30(水) 15:29:37.03 ID:cZuhgiqX 何言ってんだこいつ。日本語が不自由な上に統合失調症の傾向がある。 ロックするとか意味不明だし、プログラム向いてないから病院いっとけ。 http://mevius.5ch.net/test/read.cgi/gamedev/1284400196/147
148: 名前は開発中のものです。 [] 2013/01/30(水) 21:44:46.30 ID:ES7+KnHm >>147 >>141の下から2行目が、ガベージコレクタをロックしているコードなんだけど、 意味不明なのかい? 君にヒトを素人扱いできる程に技量があるとは、とても思えんが…。 http://mevius.5ch.net/test/read.cgi/gamedev/1284400196/148
149: 名前は開発中のものです。 [] 2013/01/30(水) 22:19:16.82 ID:ES7+KnHm ロックについては、このページを見ておくといいだろ http://dobon.net/vb/dotnet/vb6/objptr.html ヒトを病人扱いする前に用語のひとつもググってみれば? http://mevius.5ch.net/test/read.cgi/gamedev/1284400196/149
150: 名前は開発中のものです。 [sage] 2013/01/30(水) 23:34:20.46 ID:cZuhgiqX C#とかVBでわざわざポインタを使うのはdllとの繋ぎ目くらいだろ。 (JavaのJNIも同様) 繋ぎ目を隔離したラッパークラスを通さずに直接ネイティブを呼べば面倒なのは当たり前。 いたるところでガベージコレクションをロックするかのようなことを書いて、 GCが邪魔だと呟いているのは実に意味不明だ。 http://mevius.5ch.net/test/read.cgi/gamedev/1284400196/150
151: 名前は開発中のものです。 [] 2013/01/31(木) 08:48:10.87 ID:wVU/jdLo cZuhgiqX どうやらロックの意味は理解できたようだな。ひとつ勉強になっただろ。 では逆に問う。君はGCの利点として何か実感できるものがあるのか? GCのある言語とそうでない言語で同じ動作をするプログラムを組んだとして、 あきらかにGCの優位性を感じる場面に遭遇できるのはどのようなケースだ? ちなみに自分はVB5からのユーザーだが、APIは当たり前のように使っている。 http://mevius.5ch.net/test/read.cgi/gamedev/1284400196/151
152: 名前は開発中のものです。 [sage] 2013/01/31(木) 12:02:16.21 ID:NyoQQhH7 直接ネイティブを呼びまくること自体が低脳のすることだといってるのに ロックの意味もわかってないからあちこちでロックしまくってるわけだろ。 普通の人はそんなことしないので、ロックするといわれてもわかりません。 DLL、SQLとかVBの外にあるものは隔離して VBのみで完結しているように設計を作るのは基本。 >APIは当たり前のように使っている。 Win32のことか?DirectXラッパぐらい作ってから言えよw >GCの利点として何か実感できるもの スマートポイ
ンタ(参照カウンタ)を使うようなケース。 http://mevius.5ch.net/test/read.cgi/gamedev/1284400196/152
153: 名前は開発中のものです。 [] 2013/01/31(木) 12:36:26.25 ID:wVU/jdLo DirectXライブラリならDX7ベースのものを作った。ところで、その口ぶりなら当然 自分もそのぐらいは作ったんだろうな。CPUで演算したデータをバック・スクリーン サーフェスに転送する場合、ロックもかけず、APIも使わず、どーやーって 転送しているんだ?おしえてくれよ。 スマートポインタ使うと、アプリの速度が上がるとでも言いたいのか? 俺が聞いたのはコーディングの話じゃない。実行上の有利性だ。 http://mevius.5ch.net/test/read.cgi/gamedev/128440019
6/153
154: 名前は開発中のものです。 [sage] 2013/01/31(木) 15:29:50.68 ID:NyoQQhH7 >いちいちロックしないと いけないので、面倒極まりないんですけど。 >俺が聞いたのはコーディングの話じゃない。アプリの速度だ。 生産性の話をしていたのに、突然実行速度の話に変わったな。 GCは主に生産性の向上を目的として導入されているのに、おかしな話だ。 まあGCが得意なパターンにマッチすれば速くもなる。 C++でRAIIだと重いdelete()が集中しがちだが、 GCだと実際に解放するのを後回しにして、 負荷が軽い頃合に並列GCが少しずつ解放してくれたりする
。 http://mevius.5ch.net/test/read.cgi/gamedev/1284400196/154
155: 名前は開発中のものです。 [sage] 2013/01/31(木) 15:34:54.20 ID:NyoQQhH7 >DirectXライブラリならDX7ベースのものを作った。 ならライブラリを使っている限り、アプリケーション層ではAPI(dll)を呼ぶ必要はなく、 従ってロックなどしないはずだ。そうでなければライブラリに存在意義がない。 ライブラリを作ったような妄想に浸っていただけだったというオチだな。 http://mevius.5ch.net/test/read.cgi/gamedev/1284400196/155
156: 名前は開発中のものです。 [] 2013/01/31(木) 16:10:41.97 ID:wVU/jdLo 馬鹿だなあ、ライブラリ自体をVBで作ったんだ。 バックサーフェスのLockメソッドを実行して、引数の構造体からポインタを 取得し、APIの movememory を使って転送する。 ちなみにDX9のフレームバッファに直接書き込む場合は、メソッドがあるので APIは使わないようだが、ロックはしなければならない。 おまえさんのライブラリではどーやってんのかなあ?答えてないぞ。 なにしろ>>152で「DirectXラッパぐらい」って言ってんだから、「ぐらい」なんだろ。
簡単にできそうじゃねーか?当然作ってあるんだろ 強がっても本当はDirectXライブラリなんて作った事ないんだろ。まあ昨日までロックを 知らなかったんだから無理も無い。 そのくせ態度だけはでかいんだよな。ヒトを低脳よばわりとかして… GCが効果を出すのはごく限られた状況だけ、ほとんどは余計なプロセスが動くだけで STGなんかを作る人からは嫌われている。 GCがメモリをいじくりまわしても、無造作にメモリ使いまくるコード組んでりゃいつかは 足りなくなってスワップするし、ようはスワップがちょっと遅れて来るぐらいの効果しか
期待できない。 とりあえず自分で「ぐらい」と言った「DXライブラリ」作ってみそ。そしたら少しは認めてやるわ。 http://mevius.5ch.net/test/read.cgi/gamedev/1284400196/156
157: 名前は開発中のものです。 [sage] 2013/01/31(木) 17:50:35.50 ID:NyoQQhH7 俺はお前の先生じゃないからな。 初心者に1から10まで教えたりはしない。 あと話がコロコロかわるわ、分散するわ、人の書いたことが理解できないわ、 そんなお前と話をしても漠然と広がるばかりで一向に収束しない。 理由は単純、ID:wVU/jdLoがなりふり構わず言い返したいだけだからだ。 何がしたいの?そんなにくやしかった? http://mevius.5ch.net/test/read.cgi/gamedev/1284400196/157
158: 名前は開発中のものです。 [] 2013/01/31(木) 18:37:22.22 ID:wVU/jdLo 「DXライブラリなら作ってある!!」と言い返せないんだな。 そして「ロックを使わずにピクセルデータをバックサーフェスに転送できる!!」とも言えないんだな くやしいのう。くやしいのう。 >俺はお前の先生じゃないからな。 >初心者に1から10まで教えたりはしない。 じゃあひとつだけでいいよ。 ロックを使わずにピクセルデータをCPUからバックサーフェスに転送できる方法 とやらを教えてくれ。 コードを表示してこっちで試して正しく動作したらオマエの勝
ちでいい。 できなければオマエの負け。 オレはロック使わないと絶対にできないと思ってる初心者だから、先生よろしくたのむよ …しかしコイツ本当に一度でもDirectXのコード組んだことあんのかよ? APIも使ったことないんじゃねーの? どっちが初心者だよまったく…バカじゃねーの? http://mevius.5ch.net/test/read.cgi/gamedev/1284400196/158
159: 名前は開発中のものです。 [sage] 2013/01/31(木) 19:51:45.92 ID:NyoQQhH7 何言ってんだこいつ。日本語が不自由な上に統合失調症の傾向がある。 ロックするとか意味不明だし、プログラム向いてないから病院いっとけ。 http://mevius.5ch.net/test/read.cgi/gamedev/1284400196/159
160: 名前は開発中のものです。 [] 2013/01/31(木) 19:55:05.86 ID:PSRqcy7K VB使いって・・・ http://mevius.5ch.net/test/read.cgi/gamedev/1284400196/160
161: 名前は開発中のものです。 [sage] 2013/01/31(木) 20:05:52.91 ID:NyoQQhH7 >ライブラリ自体をVBで作ったんだ。 こんな事書いてる辞典でお前がライブラリなんか作れないことは自明のこと。 一個一個ロックしてコールバック呼ぶ間抜けな姿が目に浮かぶわw DirectXで頂点バッファとかVRAM転送に関するロックと マネージコード(VB, C#, Java)のGCに関するロックは全く違う話だってのもわからないだろ? 初心者が強がったところでまたひとつ恥をかいてるよ。バカじゃねーの? http://mevius.5ch.net/test/read.cgi/gamedev/1284400196/161
162: 名前は開発中のものです。 [sage] 2013/01/31(木) 20:14:38.35 ID:NyoQQhH7 >オマエの勝ちでいい。 そうだな。俺の完全勝利ってこと。 普通にロックなんて誰もしないものw おかしな知ったかぶりでGCを批判するぐらいなら 全部C++で書けばいんじゃないの? ロックせずにコールバック呼べるよ〜?w http://mevius.5ch.net/test/read.cgi/gamedev/1284400196/162
163: 名前は開発中のものです。 [sage] 2013/01/31(木) 20:24:02.19 ID:NyoQQhH7 そう、ID:wVU/jdLoは完全に負けたんだよ。 俺のC#ライブラリを使う限り、誰もGCロックなんてしないし、 SlimDXやMDX、XNAなど普通のライブラリやフレームワークはみ〜んなそう。 ついで抽象度を高めればDirectXのロックもライブラリ層で消せますな。 低脳ライブラリではコールバックの名前が変わっただけで隠蔽性も何もなく、 ロックしてまわるそうです。一体何のためのライブラリなのか謎ですな(苦笑) http://mevius.5ch.net/test/read.cgi/gamedev/1284400
196/163
164: 名前は開発中のものです。 [] 2013/01/31(木) 20:31:31.28 ID:wVU/jdLo オマエ…DirectX7を知らないのか…絶句…アホ。 http://mevius.5ch.net/test/read.cgi/gamedev/1284400196/164
165: 名前は開発中のものです。 [sage] 2013/01/31(木) 20:35:28.34 ID:NyoQQhH7 ネイティブコードに関する規模の大きいライブラリを作るなら、 dll(C)側とコネクタとなるマネージコード側の両方を書くのは必須。 これ知識というより普通は気付く。 低脳にも理解できたかな? ひとつ勉強になっただろ。 先生にありがとうございましたって、しっかり頭下げとけよw http://mevius.5ch.net/test/read.cgi/gamedev/1284400196/165
166: 名前は開発中のものです。 [sage] 2013/01/31(木) 20:38:03.52 ID:NyoQQhH7 こっちはDX9のDirect3Dを前提に話をしているが、 DirectDrawでも話の芯は全く同じだ。 http://mevius.5ch.net/test/read.cgi/gamedev/1284400196/166
167: 名前は開発中のものです。 [] 2013/01/31(木) 20:42:24.50 ID:wVU/jdLo じゃあオフスクリーンサーフェスにピクセル配列を転送するコード を書いてみろ。 http://mevius.5ch.net/test/read.cgi/gamedev/1284400196/167
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 33 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.020s