VBプログラマ質問スレ ..
[2ch|▼Menu]
112:デフォルトの名無しさん
13/02/24 11:55:26.62
VB.net 一卵性双生児

113:デフォルトの名無しさん
13/02/25 13:54:42.52
>>112
それは違う。同姓同名の赤の他人だろ。

114:デフォルトの名無しさん
13/02/25 19:39:17.92
>>113
109からの流れを見よ

115:デフォルトの名無しさん
13/02/25 20:53:29.88
ゴスリンとヘルスバーグでウケとかタチとかの薄い本見たときはぶっ飛んだぞ。

116:デフォルトの名無しさん
13/02/26 03:42:17.69
GetPrivateProfileStringで全角文字使えないかんじ?

117:デフォルトの名無しさん
13/02/26 03:48:14.84
s = String(20, " ")
r = GetPrivateProfileString(ap,ky,df,s,20,fl)
n = len(s)
としたとき
全角文字が無いとき、例えば abcdefg だったとすると
r=7 n=20 ってなって8文字目がNullコードになってるんだけど
全角文字があるとき、例えば あいう だったとすると
r=6 n=17 ってなって4文字目がNullコードになって
sの変数のサイズが変わっちゃうんだけど
sの消えた3文字分のメモリはどこいっちゃったの?って感じで
これってヤバイの?大丈夫なの?

118:デフォルトの名無しさん
13/02/26 03:49:47.13
sには固定サイズの文字列渡したほうがいいの?
Dim s As String * 20
みたいな

119:デフォルトの名無しさん
13/02/26 06:59:19.24
文字数とバイト数は違うぞ
LenじゃなくてLenB使ってみ

120:デフォルトの名無しさん
13/02/26 10:59:04.17
>>117
全角を使うときは値をダブルクォーテーションで囲えアホが

121:デフォルトの名無しさん
13/02/26 19:59:22.42
>>119
それに何の意味があるのだろうか

Len("abc") > 3
LenB("abc") > 6
Len("あいう") > 3
LenB("あいう") > 6
Len("abあ") > 3
LenB("abあ") > 6

122:デフォルトの名無しさん
13/02/26 20:01:48.31
>>120
ダブルクオーツで囲っても>>117と結果同じだったんだけど・・・

123:デフォルトの名無しさん
13/02/26 20:09:29.55
GetPrivateProfileStringは最初の=以降から文末までを読み込むようで
"あいう"えお"
という二重引用符を間に挟んでやると
文頭と文末の引用符を除いた
あいう"えお
を返してくれたよ

124:デフォルトの名無しさん
13/02/26 20:12:51.87
>キー名に関連付けられている文字列が単一引用符や二重引用符で囲まれている場合、GetPrivateProfileString 関数はこれらの引用符を取り除きます。

単一引用符でも取り除かれるのか
これは意外だ

つかVB6付属のMSDNには文字列書き込むときには引用符でくくれとは書いてないように見えるのだが

125:デフォルトの名無しさん
13/02/26 20:22:42.95
今どきiniとかないわー
xmlにしろよ

126:デフォルトの名無しさん
13/02/26 20:25:59.25
っていうか質問の内容を勘違いしないで
全角文字が取得できないなんて一言も言ってないし
20文字分(40bytes)のメモリを割り当てた変数が
全角含む文字列渡すと全角1文字につき1byte分減って戻ってくるけど
これってメモリ関連のトラブルの発生源になったりしないか聞きたいんだけど

127:デフォルトの名無しさん
13/02/26 20:28:31.08
固定長文字列にしたら元の文字列サイズ分ちゃんと戻ってくるのな
可変長文字列をGetPrivateProfileStringに渡しちゃまずいのか?

128:デフォルトの名無しさん
13/02/26 20:35:35.69
>>125
少量のキーと値の関連付け保持に便利じゃん
レジストリは使いたくないし、xmlだと一部の文字にエスケープとか使って配慮しないといけないし

129:デフォルトの名無しさん
13/02/26 20:58:55.89
>>126
ANSIとUNICODEの変換でそう見えるだけ
UNICODEでの文字数とANSIの文字数(バイト数)は一致しない

130:デフォルトの名無しさん
13/02/26 21:17:03.54
固定長文字列でもちゃんと戻ってくるかと思ったけど違ったわ
"A"で初期化したけど可変長文字列と同様に減って戻ってきてるわ
減った分が32、半角スペースで埋まって戻ってきた
やはり仕様なのか、もしくは全角使うのがまずいのか
GetPrivateProfileStringAじゃなくGetPrivateProfileStringWを使うべきなのか

>>129
APIが全角1文字を半角2文字分としてよこしてVBが2文字分の領域を確保するけど
バイトコードからVBが全角文字だと判断して2文字分を1文字分に減らすってこと?

131:デフォルトの名無しさん
13/02/26 21:25:24.91
あ=82A0
をAPIが 82 と A0 の1バイト文字(半角)2文字分としてVBに渡して
がVBで確保した2文字分の領域4バイト 0000 0000 に上書きされて
0082 00A0 となったところをVBが全角文字と判断して
0082 00A0 → 82A0 という1文字分(2バイト)減らして変数に戻すってこと?

132:デフォルトの名無しさん
13/02/26 21:57:53.94
VBが確保した領域10文字なら10バイト分をAPIに渡して
文字列が「あAA」なら
APIは10バイトの最初2バイトを82、A0で埋めて3バイト目を65、4バイト目を65、5バイト目を0にしてVBに返し
VBは10バイトを1バイトずつ解釈していってunicodeに変換して変数に再割り当てしてるってことなのか?
でもそれだと適当な文字で初期化した固定長文字列の減った部分が半角スペースで初期化されてるのはおかしいし
どうなってんだこれ

133:デフォルトの名無しさん
13/02/26 22:05:41.59
何このバカ?
値が取れればそれでいいだろ?頭使えよ。

134:デフォルトの名無しさん
13/02/26 22:06:22.11
>>129
なんかわけわかんねえレスだなと思ってたらGetPrivateProfileStringの戻り値の話?
戻り値は書き込んだバイト数返すはずだからLenやLenBした値と違うのは当たり前じゃね?
そうじゃなくて変数の割り当てメモリが減ってるって話なんだけど

135:デフォルトの名無しさん
13/02/26 22:10:14.91
GetPrivateProfileString自体がVB6の関数でも何でもないのに戻り値が理不尽だと騒ぐバカ。
相手にする方がどうかしてる。

136:デフォルトの名無しさん
13/02/26 22:12:23.64
だれも戻り値の話なんかしてないだろ
確保しておいた変数のサイズがAPIに渡したら変数のサイズが変わったって言ってんだよ
文字列の長さの話じゃねえし戻り値の話でもない

137:デフォルトの名無しさん
13/02/26 22:14:00.99
>>136
冷静に。
サイズなんか変ってないよ。
BSTRとみなした時の文字数が変っただけ。

138:デフォルトの名無しさん
13/02/26 22:14:30.29
変数の割り当てメモリはどうやって調べた?
文字列の長さ=割り当てメモリじゃねーぞ。

139:デフォルトの名無しさん
13/02/26 22:15:56.02
>>136
なに興奮してんだこのアホ。関係ない戻り値で反応しやがったw

140:デフォルトの名無しさん
13/02/26 22:26:25.87
>>137-138
Dim s As String * 10
s = String(10, "A") ' s="AAAAAAAAAA" Len(s)=10, LenB(s)=20
GetPrivateProfileString(ap,ky,df,s,10,fl)
のコードで

文字列が"AAAA"の場合
s="AAAA0AAAAA" ( 0 はNull文字)

文字列が"あAA"の場合
s="あAA0AAAAA_" ( 0 はNull文字 _ は半角スペース)

固定長文字列を渡した場合、全角含む文字が渡された場合に後部に半角スペースが入るのは何でなの?
これって確保した変数サイズが変わったってことじゃないの?

141:デフォルトの名無しさん
13/02/26 22:29:01.06
>>140
半角スペースだって分かってるならTrimすればええやん 初心者?

142:デフォルトの名無しさん
13/02/26 22:30:12.12
> これって確保した変数サイズが変わったってことじゃないの?
違います。終了。

143:デフォルトの名無しさん
13/02/26 22:33:16.70
>>141
Trimする意味がわからんのだが?

>>142
全部Aで埋めたはずなのに何で後部の文字が半角スペースになるの?APIの仕様に書かれてない処理なんだけど

144:デフォルトの名無しさん
13/02/26 22:33:18.57
>>140
とりあえず2つの問題を区別しよう。

(1) なぜ最後に半角スペースが付くのか
(2) 「変数のサイズ」(確保されたメモリ領域のバイト数)は変ったのか

(1)は本当だと仮定して理由は分からない。
(2)は変ってません。変ったのは、20バイトのメモリ内のデータをUTF-16の文字数と
みなした時の文字数だけ。

145:デフォルトの名無しさん
13/02/26 22:44:53.79
>>144
Lenしたときの文字数が変わるのは可変長文字列を使った>>117のケースで
>>140は固定長文字列を使ってるからAPI通したあともLenした文字数は変わってない
可変長のときなら減った文字数分の半角スペースが固定長文字列のときに後部に埋まってるという話なんだけど

固定長のとき
確保したメモリいっぱいにAの文字を埋めたんだから
APIが前部のデータを上書きしても後部はいじってないのだから
メモリをそのまま引き出したのなら後部はAのままのはずなのに半角スペースが入ってる
これでメモリに異常は起きてないっておかしいんじゃないの?

146:デフォルトの名無しさん
13/02/26 23:07:10.72
つかもういいよ
仕組み知ってる人いなさそうだし
ここで質問した俺が大馬鹿だったてことでいいよ
VBでAPIを使うときVBがAPIとどうやりとりしてるかの知識が足りない俺がバカでした
さよなら

147:デフォルトの名無しさん
13/02/26 23:10:48.17
VB6っていうか、もうWin9x時代のこと大分忘れてるから混乱するな...
冷静に考えるとBSTRはUTF-16だから、ポイントしている領域が同じなら「文字数」が
変るのは確かに変だ。

質問者はひょっとして(今時)Aの付く方のAPIを呼んでるのかね。
VBはこの辺りブラックボックスだから困るんだけど、この場合は、恐らく
関数の呼び出しの前後で.NETでいうマーシャリングが入るんだろう(想像)。

呼出し後に文字数が変るのはこのためか?

148:デフォルトの名無しさん
13/02/27 02:48:18.10
APIではバッファの最大長を指定する
戻りでヌルターミネートされた先の領域なんて保障されてないだろ

API呼び出し後にANSI-UNICODEの変換が入ってるから
その変換時に(VBとしての)変数のサイズが変わっても不思議も問題もない

149:デフォルトの名無しさん
13/02/27 03:02:32.75
VB6からWのほうって呼び出せるのか?

150:デフォルトの名無しさん
13/02/27 03:05:23.37
呼べることは呼べる
でもA呼び出すよりメンドクセ

151:デフォルトの名無しさん
13/02/27 04:26:45.46
呼び出せんのか
知らなかったわ
どうやんの?

152:デフォルトの名無しさん
13/02/27 04:46:20.16
呼び出すだけなら普通に〜WまでDeclareして呼ぶだけ
文字列渡したらどうなるかは知らん

153:デフォルトの名無しさん
13/02/27 05:00:16.69
当然ながらメンドクセと言ってる部分のことを尋ねているのだが

154:デフォルトの名無しさん
13/02/27 05:03:47.90
Visual Basicに関するメモ
URLリンク(homepage3.nifty.com)

APIとの文字列のやりとり(ANSI vs UNICODE変換)

を嫁

155:デフォルトの名無しさん
13/02/27 12:27:49.61
declare function GetPrivateProfileStringW lib "kernel32" ( _
byval ap as long, byval ky as long, byval df as long, byval s as long, byval l as long, byval fl as long) as long
dim s as string
s = string(10, vbnullchar)
l = GetPrivateProfileStringW(strptr(ap), strptr(ky), strptr(df), strptr(s), 10, strptr(fl))
s = left(s, l)

156:デフォルトの名無しさん
13/02/27 16:02:58.71
正解!

157:デフォルトの名無しさん
13/02/27 21:39:47.58
%TEMP%フォルダに
DF〜.tmpというゴミファイルが大量にたまってると思ったら
旧VBのせいかよ!

158:デフォルトの名無しさん
13/02/27 21:42:33.26
いつの間にかVB.netをVBって呼ぶようになったのね。
VBできますか?って言われたから、てっきりVB6.0の事かと思って「ハイ!」と答えたら
あとでVB.netだったと分かりさあ大変。納期は3週間しかないけど対応できるだろうか?

バカだなおれorz

159:デフォルトの名無しさん
13/02/27 21:46:01.33
アイコン使ってる旧VB製のやつが原因か
まぁIE9でも作られてるが・・・

160:デフォルトの名無しさん
13/02/27 21:53:10.31
アイコンなんて使ってないけど?

161:デフォルトの名無しさん
13/02/28 21:41:42.10
変数のポインタアドレス渡すとか何か怖いな

162:デフォルトの名無しさん
13/02/28 21:43:47.88
>>155
ていうかこれ書き込まれる文字コードはunicodeってわけじゃないのな
引数としてunicodeが渡せるってだけなのな

どっちみちファイルにANSIで書き込まれるのならAとWどっちを使っても同じやん旧VBからは

163:デフォルトの名無しさん
13/02/28 21:57:08.78
INIファイルの先頭にBOMがあるかないかで動作が変わったような記憶が。
違ってたらごめん。

164:デフォルトの名無しさん
13/02/28 22:13:13.73
>>161
ポインタアドレスってなんだよ?ポインタ自体がアドレスだろうが?
それともポインタのポインタか?そんなもん渡してませんが何か?

これだからVB6オンリープログラマは怖いわ・・・。

165:デフォルトの名無しさん
13/02/28 22:24:36.72
ポインタってアドレスを指す変数のことじゃなかったのか・・・勉強になるなこのスレ

166:デフォルトの名無しさん
13/02/28 22:43:02.98
おとなしくxmlを使えばいいのに

167:デフォルトの名無しさん
13/02/28 23:04:23.74
>>165
いつからポインタが変数になったんだよ?w

168:デフォルトの名無しさん
13/02/28 23:06:05.49
配列なら変数だな

169:デフォルトの名無しさん
13/02/28 23:18:06.38
普通の変数は値を保存しているけど
ポインタは変数の値を保存しているメモリのアドレスを保存している変数

170:デフォルトの名無しさん
13/02/28 23:21:17.55
ポインタは変数ではないよ。そんな風に教えたのは一体どこの専門学校だよ?大原か?

171:デフォルトの名無しさん
13/02/28 23:23:23.90
>>170
ググるとポインタは変数ですと説明しているサイトが山のようにひっかかるからだろ?
アホの仲間入りをさせておけばええやんw

172:デフォルトの名無しさん
13/02/28 23:24:10.45
語義を考えれば分かると思うが、ポインタとはもともとは左辺値が入る変数やレジスタのこと。
左辺値そのもののこともポインタと言ったりするが、それは派生的用法だろう。

173:デフォルトの名無しさん
13/02/28 23:24:30.44
>>169

ポインタ (プログラミング) - Wikipedia
Wikipedia項目リンク(%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0)

174:デフォルトの名無しさん
13/02/28 23:26:02.52
変数のように扱えるから、初心者はアドレス専用変数と考えると分かりやすいからでしょう。
言語仕様は関係ないでしょうから。

175:デフォルトの名無しさん
13/02/28 23:28:59.80
>>172
>ポインタとはもともとは左辺値が入る変数やレジスタのこと。

一体どんな言語を前提として言ってるのかね?アセンブラかい?
だったらWORD PTRとかQWORD PTRとかを変数と呼ぶのかい?
少なくともC言語では言語仕様上ポインタは変数ではないぞ。
変数と同じように値を代入する事はできるがな。

176:デフォルトの名無しさん
13/02/28 23:30:23.30
VB6でポインタを語っている時点で終わってる訳だが?

177:デフォルトの名無しさん
13/02/28 23:31:46.23
前スレに関数ポインタをVBから実行するテクがあったな

178:デフォルトの名無しさん
13/02/28 23:33:29.67
StrPtrとかなんで隠し関数なんだ?

179:デフォルトの名無しさん
13/02/28 23:35:23.62
>>175
だから、君が本来の意味と派生的な意味の区別がついてないだけ。
馬鹿はこれだからな。人が言ってるそばからまったく。

180:デフォルトの名無しさん
13/02/28 23:35:36.60
AddressOf 演算子を変数だと言い出す奴が出現しそうだなw

181:デフォルトの名無しさん
13/02/28 23:35:47.31
仕様と実装は別じゃね
Cコンパイラがポインタを変数のように扱うかもしれんだろ

182:デフォルトの名無しさん
13/02/28 23:36:37.23
本来の意味と派生的な意味をごっちゃにしてる奴が話を混乱させているだけだろ?

183:デフォルトの名無しさん
13/02/28 23:42:34.41
「ポインタ変数」と書いてるサイト大杉ワロタ

184:デフォルトの名無しさん
13/02/28 23:50:09.01
>>183
Cの場合はポインタは型。
つまり「ポインタ変数」はポインタ型の変数と言う意味。
だから何もおかしくない。

185:デフォルトの名無しさん
13/02/28 23:51:12.24
この辺り、ポインタ変数もムーミン村とかバカボンパパと同じ系統のネーミングだなw

186:デフォルトの名無しさん
13/02/28 23:55:05.08
関数へのポインタ = 関数ポインタ
変数へのポインタ = (変数)ポインタ

ポインタを入れる変数 = ポインタ変数

関数へのポインタ = 関数ポインタ
関数へのポインタを入れる変数 = 関数ポインタ変数

ここまでいえば、ポインタとポインタ変数の
違いぐらいわかるだろ。

187:デフォルトの名無しさん
13/02/28 23:58:07.54
WORD pointer ← WORD型変数

WORD型

WORD* pointer ← WORDポインタ型変数

WORDポインタ型

188:デフォルトの名無しさん
13/03/01 00:00:57.25
WORD* pointer

WORDポインタ型

int* pointer

intポインタ型

void* pointer

voidポインタ型


?* pointer

型名を省略して、ポインタ型
そしてpointerはポインタ型変数
変数の中に入っている値 ・・・ ポインタ

189:デフォルトの名無しさん
13/03/01 00:03:24.02
>>186
まだ言ってるのか。
概念としては、アドレスを入れる入れ物としてのポインタがあくまで先。

Cには型の概念があるから、ポインタ変数の型のことをポインタと呼ぶことにした、
という順番。まさにムームン村。

190:デフォルトの名無しさん
13/03/01 00:04:59.38
> ポインタ変数の型のことをポインタと呼ぶことにした、
してない。

ポインタは変数の中に入っている値。

ポインタと
ポインタ型と
ポインタ変数は
それぞれ別

数値と
数値型と
数値型変数
といえば理解できるだろ?

191:デフォルトの名無しさん
13/03/01 00:06:20.94
だから語義を考えろって。生きてるうちに少しは頭使えよ。
pointer = point + er。

192:デフォルトの名無しさん
13/03/01 00:06:50.89
それで?

193:デフォルトの名無しさん
13/03/01 00:08:11.73
位置を支持するもの(変数)だからpointerって言うんだよ。
位置だけならただのpointじゃねえか。
こんな簡単な話がわからない奴がいるんだからな。

194:デフォルトの名無しさん
13/03/01 00:08:23.58
おまえら旧VBでポインタ扱うことあるの?ならこの話を続けてもいいよ

195:デフォルトの名無しさん
13/03/01 00:10:33.15
URLリンク(wiki.answers.com)

What is a pointer variable?
A pointer variable is a variable that contains the memory
location of another variable or an array (or anything else in memory).
Effectively, it points to another memory location.

196:デフォルトの名無しさん
13/03/01 00:11:31.11
pointerって黒板指す奴だな

197:デフォルトの名無しさん
13/03/01 00:15:49.97
#define BASE 0xA000
WORD *pointer = BASE ← これ(BASE)が位置(ポイント)

BASEがポイントであり、
pointerに入っている値(=0xA000)は
ポイントを指し示すものだから、ポインタ

198:デフォルトの名無しさん
13/03/01 00:17:28.10
>>197
馬鹿だろお前

199:デフォルトの名無しさん
13/03/01 00:19:59.89
反論できなきゃ、お前が馬鹿ってことになる。
口を出したのなら、最期までやらなきゃ自滅だよ。

200:デフォルトの名無しさん
13/03/01 00:20:03.06
defineってマクロじゃん
テキスト的にその文字列を置き換えるってだけのものなのに

201:デフォルトの名無しさん
13/03/01 00:20:59.42
東京タワーの場所 = 位置
その位置を表す数値=ポインター

202:デフォルトの名無しさん
13/03/01 00:27:28.17
2つ3つの意味を持つ言葉ってプログラミング言語にはつきものなのかな
プロセスとかパイプとか

203:デフォルトの名無しさん
13/03/01 00:27:36.24
WORD point;
WORD *pointer = &point;

204:デフォルトの名無しさん
13/03/01 00:28:33.59
>>199
反論てw
>>197に反論が必要だと思ってるのか。
厚顔無恥ってのはすごいことだね。

2行目で自分で「ポイント」だと言ってる同じ0xA000という値が、
5行目では「ポイントを指し示すもの」になってることに何も疑問を感じないのかよ。

205:デフォルトの名無しさん
13/03/01 00:31:45.50
東京タワーの場所 = 位置(BASE) = ポイント
その位置を表す数値(0xA000)=ポインタ

0xA000 = ポインタ
0xA000 を入れるための変数 = ポインタ変数

なにか矛盾でも?

206:デフォルトの名無しさん
13/03/01 00:34:39.31
変数の位置を指し示す値だからポインターだろ。

207:デフォルトの名無しさん
13/03/01 00:34:43.24
>>201
だから違うよ。そういうことじゃない。

その例えでいうのなら、たとえば首相の現在位置を表示する掲示板(そんなものがあるとして)がポインタ。
東経何度北緯何度というのはただの位置情報であって位置の指示者(ポインタ)じゃない。

208:デフォルトの名無しさん
13/03/01 00:36:20.33
結論まだ?

209:デフォルトの名無しさん
13/03/01 00:37:17.49
首相の現在位置 = ポイント

だな。

現在位置を表す値がポインタだ。

210:デフォルトの名無しさん
13/03/01 00:39:31.13
「ポインタ演算」という言葉があることを知っていれば、
ポインタは演算できるものだってわかるはずだがね。

211:デフォルトの名無しさん
13/03/01 00:39:37.77
>>209
だから違うって馬鹿か。
それは「位置情報」であって「位置の指示者」じゃない。

212:デフォルトの名無しさん
13/03/01 00:40:43.81
「位置の指示者」って変な用語だなw

ポインタは演算できるもの、すなわち
値であることは明らかだ。

213:デフォルトの名無しさん
13/03/01 00:41:53.41
>>210
納得した。確かに値だ。

214:デフォルトの名無しさん
13/03/01 00:44:16.42
しかし、「メモリ上の位置をポイントする変数 = ポインタ」というのが
ポインタという概念の出発点で、あとの用法はあくまで派生的なものだ、ってそんなに難しい話か?

まあ世の中馬鹿多いし、だいいちここはVBerのスレだからあれか...

215:デフォルトの名無しさん
13/03/01 00:49:14.63
>>214
だからポインタは演算できる値だって結論でただろ?

メモリ上の位置=ポイント
例えば特定のポイントに変数aがあるとする。
その変数aのポイントを指し示す変数b(ポインタ変数)がある。
ポインタ変数bの中に入っているのがポインタ

×「メモリ上の位置をポイントする変数 = ポインタ」
○「メモリ上の位置(ポイント)を指し示す値 = ポインタ」

ポイント と ポインタ は別物なんだよ。

ポイントが変数aの場所だとして、
ポインタは変数bに入っているんだよ。

216:デフォルトの名無しさん
13/03/01 00:55:30.01
>>215
そういう物の言い方って馬鹿特有だね。
馬鹿って何度言っても「位置情報」と「位置情報の指示者」の区別が付かないんだな。

っていうか、自分でポイントを表す値がポインタだ、って言ってて何の疑問も感じないんだから凄い。
まともな教育受けてるのか君って。

217:デフォルトの名無しさん
13/03/01 00:55:51.07
>>215
その説明読むと、ポインタは型のような気がするか?

218:デフォルトの名無しさん
13/03/01 00:56:46.99
>>216
その文章に反論が含まれてないよ?

簡略化すると、お前はわかってない。としか言ってないよね君。

219:デフォルトの名無しさん
13/03/01 00:58:06.96
>>217
ポインタ と ポインタ型 の違いは
数値 と 数値型 の違いと一緒です。

220:デフォルトの名無しさん
13/03/01 00:58:23.61
馬鹿にも分かるかもしれない別の言い方をしてみるか。

ポインタとは、戸籍(の現住所)みたいなもの。

戸籍は書き換えることができる。
そして、戸籍に載っている情報は住所だが、住所は戸籍じゃない。

実に当たり前の話だと思うんだが、こういう当たり前の話を延々されても
理解できないのが、馬鹿。

221:デフォルトの名無しさん
13/03/01 00:59:29.39
ポインタ と ポインタ型 の違いは
数値 と 数値型 の違いと一緒です。

0、1、2、3、4、5

これは何でしょうか? 数値ですね。
でもメモリアドレスとみなすと
ポインタでもありますね。

222:デフォルトの名無しさん
13/03/01 01:01:55.20
やっぱりポインタは値か。

223:デフォルトの名無しさん
13/03/01 01:06:00.12
値がポインタだとすると、その値を参照する機能は何なの?

224:デフォルトの名無しさん
13/03/01 01:10:58.24
1つの言葉が2つ以上の意味を持っちゃいけないんですか!

225:デフォルトの名無しさん
13/03/01 01:14:00.88
だったら変数でも値でもいいじゃん

226:デフォルトの名無しさん
13/03/01 01:15:17.01
>>223
ポインタ値の参照じゃね?

それともポインタ値で指し示す先にある変数を参照したいのかな?

227:デフォルトの名無しさん
13/03/01 01:16:07.78
ポインタ値で指し示す先にある変数を参照 = 間接参照

228:デフォルトの名無しさん
13/03/01 01:19:45.14
やはりポインタは値と考えるのが
一番しっくり来るな。
ポインタは計算できるものだし。
型や変数は、計算出来ない。

229:デフォルトの名無しさん
13/03/01 01:20:07.33
>>227
間接参照とは単にポインタがポイントしているデータを参照することw
恐らく機械語のindirect addresssingから来ている

230:デフォルトの名無しさん
13/03/01 01:21:26.36
>>229
ん? だからポインタが指し示すポイントにある変数を参照することでしょ?

231:デフォルトの名無しさん
13/03/01 01:23:04.59
>>230
ポインタがポイントするのは変数なんですか?

232:デフォルトの名無しさん
13/03/01 01:24:14.89
>>231
型って言いたいんでしょ?w

233:デフォルトの名無しさん
13/03/01 01:25:15.83
やっばり値がポインタだと言われても、しっくりこないなあ。
ポインタの値はただのアドレスじゃないの?

234:デフォルトの名無しさん
13/03/01 01:25:26.85
変数を参照 と 値を参照 って違うものでしたっけ?

235:デフォルトの名無しさん
13/03/01 01:26:07.88
> ポインタの値はただのアドレスじゃないの?
つまり、ポインタの値はただのアドレス(0xA000)とかってことでしょ?

236:デフォルトの名無しさん
13/03/01 01:27:09.38
>>232
mallocで確保した場所に変数なんかない

237:デフォルトの名無しさん
13/03/01 01:28:09.43
C言語においてポインタはただのメモリアドレスの値ですが
誰か違うって言っていた人いましたっけ?

238:デフォルトの名無しさん
13/03/01 01:29:45.71
>>233
全然違う概念なんだからしっくりくる方がおかしい。

ポインタ(戸籍)の値はアドレス(住所)かもしれないが、
住所が戸籍だなんて奴がいたら、そいつはかなり脳が足りない。

239:デフォルトの名無しさん
13/03/01 01:32:30.72
>>238
そこなんだよな、ポインタは値と言われると
じゃあポインタ=アドレスなのか?と言う気になる。

240:デフォルトの名無しさん
13/03/01 01:47:22.89
値の入れ物や、値を指す方法を示すものがポインタ
アドレスはその示されてる値

241:デフォルトの名無しさん
13/03/01 01:59:45.04
ちょーっと
ここVBスレなんすけど

242:デフォルトの名無しさん
13/03/01 02:00:36.52
>>239

なんでお前>>238にレスしてるの?
>>238は明らかに意味不明、馬鹿だよね。
自作自演にしか見えないよ。

なぜかっていうと、戸籍っていうのはな。
> 人の生年月日や、どこで生れたのか、両親は誰々で、
> 兄弟はいるのかどうか、そして、いつ死亡したのかなどがわかるものです。

243:デフォルトの名無しさん
13/03/01 02:13:19.42
時間が変わってバイさるから復帰か

244: 【豚】
13/03/01 02:17:26.37
そんなことより
おみくじで旧VBの将来を

245:デフォルトの名無しさん
13/03/01 02:25:32.39
多分Windows15とかなってもVBランタイムが付いてくるでしょう

246:デフォルトの名無しさん
13/03/01 02:31:20.98
Windows95くらいになってもな!

247:デフォルトの名無しさん
13/03/01 04:02:55.16
荒らしに反応する奴も荒らし

荒らしに反応する奴に反応する奴も荒らし ←俺か

248:デフォルトの名無しさん
13/03/01 04:07:40.39
ポインタ(戸籍)なんて奴がいたら、そいつはかなり脳が足りない。

249:デフォルトの名無しさん
13/03/01 04:10:36.00
もう少しタメになる話をしておくれよ
旧VBを扱わなきゃいけない案件はまだまだあるんだし
四月になれば新卒で入った新人君たちがそれらに関わるかもしれんじゃないか
有益な情報だけたのむ

250:デフォルトの名無しさん
13/03/01 08:18:43.68
pointerとpointeeの違いが分からない低能がいるのが悲しい
理解力が無く最低限の英語すら分からないで、この先技術者として生きていけるの?

251:デフォルトの名無しさん
13/03/01 09:06:43.52
話を >>161の原点に戻そう。

>変数のポインタアドレス渡すとか何か怖いな

つまりコイツが、「変数のポインタ渡すとか何か怖いな」と言っていればこのポインタ議論は発生しなかった。
「変数のポインタアドレス」と言ってしまったので、アドレスを示すポインタ+アドレスという意味不明な重複が発生した。
そこで、このバカがもしかしたらポインタの事を変数だと思っているのかも?という疑惑が生まれた。
しかしそれにしてもこれだけスレが伸びるとは・・・。
しかも最もポインタに縁遠いVB6のスレでwww

252:デフォルトの名無しさん
13/03/01 09:09:11.98
それいうなら、「変数のアドレス」だろw

253:デフォルトの名無しさん
13/03/01 09:09:55.21
ダメダメなC#と比べればVB6.0にいかにノビシロがあるかがわかるな。

254:デフォルトの名無しさん
13/03/01 09:11:10.40
>>252
「変数のアドレス」ならC言語風で言うなら &a でもいいはず。これはポインタではない。はい論破。

255:デフォルトの名無しさん
13/03/01 09:12:47.51
まだ ポインタ = アドレス だと思ってるアホちゃんがいるらしいw

256:デフォルトの名無しさん
13/03/01 09:17:57.88
ハードウェアで言うならプログラムカウンタ(PC)を変数と考えるかどうかという事だな。
JMPやCALL、PUSH、POP命令はPCの値を変更してプログラムの流れを変える。
まさにこの時、PCが変数かのようにふるまう。では代入演算命令でPCに値を入れられる命令があるかというと
そんな機械語は存在しない。なのにPCを変数と考えるのか?という談義に近い。

257:デフォルトの名無しさん
13/03/01 09:18:13.28
ポインタはアドレスだけじゃなくて型も持ってるんだよ。
だから
int* hoge;
hoge++;
とするとhogeは4足されたりする。

258:デフォルトの名無しさん
13/03/01 09:19:32.04
>>257
やっと少しまともな奴が現れたなw

259:デフォルトの名無しさん
13/03/01 09:23:42.38
気を付けなければならないのはポインタは型の属性を持っているがそれ自身に型は無いという事かな。
つまりポインタが16bitとか32bitとか64bitとかの固有のサイズを所持することはない。
もちろんsizeofで見ればバイト数は明確になるが、言語仕様上それに依存したコードを書くのは好ましくない。
(制御系では頻繁にやるが)

260:デフォルトの名無しさん
13/03/01 09:29:15.22
例えばint* hoge;で確保されるメモリは4バイト?
それとも4バイト+型情報分のバイト数?
それとも型情報はまったく別なとこで管理されてるの?

261:デフォルトの名無しさん
13/03/01 09:45:18.14
Cに限っていえば、型はコンパイラが知ってるから
コンパイルされた後に型の情報は必要ない。

262:デフォルトの名無しさん
13/03/01 09:49:16.97
なるほど

263:デフォルトの名無しさん
13/03/01 10:16:23.43
ということはポインタは型を持っているというわけではないのか。

264:デフォルトの名無しさん
13/03/01 10:22:14.45
やがて配列のポインタへの成り下がりに話題が進むのであった。
もはやVB関係ね〜な。

265:デフォルトの名無しさん
13/03/01 11:51:12.83
制御系だとCのポインタのサイズはCPUのプログラムカウンタのサイズ、
いわゆるアドレス幅とイコールであることに何の疑問も抱かないのは
Cをマクロアセンブラの発展形くらいの感覚で使っているからなんだな。
同じプログラマでもアプリケーションプログラマとは感性がちがうな。

266:デフォルトの名無しさん
13/03/01 12:06:43.12
16bitのx86にはラージポインタという恐ろしいものがあってな

267:デフォルトの名無しさん
13/03/01 12:14:04.83
スレが進んでると思ったら、たいてい
VB6以外の言語の知識でVB6を説明しようとする話題だw

268:デフォルトの名無しさん
13/03/01 12:23:21.84
オワコンなんだから仕方ない

269:デフォルトの名無しさん
13/03/01 13:36:37.60
>>266
ヒュージポインタに比べたらそんなもん糞でしょ?w

270:デフォルトの名無しさん
13/03/01 17:05:31.50
オワコンだからといって荒らしていいわけではないでしょ。
スレを立てられないアホ、スルー力ゼロのアホがどれだけいるんだか。

271:デフォルトの名無しさん
13/03/01 17:55:08.31
プログラム云々関係なく俺の純粋思考の導き出す推論によると
変数とは値概念。ポインタとはベクトル概念
ただしこの両者は明確に概念として切り分けられないはず
何故なら空間的位置と数量的位置は同じものとみなすことも可能だからだ

272:デフォルトの名無しさん
13/03/01 18:51:30.62
哲学者ぶっても所詮は専門学校卒
文盲甚だしい

273:デフォルトの名無しさん
13/03/01 19:55:01.53
>>161の言葉の間違いというか認識の間違いを指摘するためだけに100以上伸びるスレとかw

274:デフォルトの名無しさん
13/03/01 20:12:38.37
>>273
かと言ってレス乞食が狙おうとすると意外に難しいんだよなぁ

275:デフォルトの名無しさん
13/03/02 07:34:05.77
>88J#の間違いでしょ

276:デフォルトの名無しさん
13/03/02 07:43:45.28
VB6の同世代ならJ++だろ

277:デフォルトの名無しさん
13/03/02 09:13:56.66
>>275
いや、C#で間違いない。J#は論外だろ?

278:デフォルトの名無しさん
13/03/02 10:02:09.27
C#は利用者数が伸びないね
インドのオフショア企業が使用しているけど
あれはJavaのソースをぶっこ抜いてC#に移植するとライセンスを隠ぺいできるため。
Javaのオープンソース資産をライセンスフリーで流用するための手段に過ぎない。
それに比べると中国系のオフショア企業はC++を使用するケースが多いように思う。
インドより中国の方が正当な事をするなんて、ちょっと信じ難いけどね。

279:デフォルトの名無しさん
13/03/02 12:32:14.48
Xamarin、C#言語によるiOS/Androidアプリ開発を実現する“Xamarin 2.0”を発表 - 窓の杜
URLリンク(www.forest.impress.co.jp)

むしろVB不遇じゃね

280:デフォルトの名無しさん
13/03/02 12:33:22.10
VBSやVBAなどで一般にも認知度の高い旧VBなんだからもっと優遇されるべき

281:デフォルトの名無しさん
13/03/02 13:04:55.86
>>279
XamarinがVisualStudio級の開発環境を提供するなんてどこにも書いてないけど?
こんなのが普及すると本気で思ってるのだろうか?

C#って基本はコマンドラインコンパイラだよ?

282:デフォルトの名無しさん
13/03/02 13:12:23.39
>>281
XamarinがVisualStudio級の開発環境を 提供する必要がないだろw

普通にVisual Studioで作ればいい。

ソースコードはあるんだ、最後に違うコンパイラを使えばいい。

283:デフォルトの名無しさん
13/03/02 19:24:59.68
わかってないなこの人

284:デフォルトの名無しさん
13/03/02 22:44:08.81
自称わかってる人が、
説明しないんだもんな。
面白いw

285:デフォルトの名無しさん
13/03/03 00:14:47.47
>>284
      - -―- 、.                          - -―- 、.
   :/..::::::::::::::::::.丶:        . . ..         :/...::::::::::::::.. ヽ:
  :/..::::::::::::::::::::::::::: ヽ:.      :,r"´⌒`゙`ヽ:       :/ ..:::::::::::::::::::/\ ヽ:
  :i.::::::::::::」:::」:::」::」」i l:     :/ ,   -‐- !、:     :/..:::/::::/::::// ヽ l:. l.:
  :|::::::::::o゚▲   ▲o:    :/ {,|f  -‐- ,,,__、):    :l:::::!:o゚(●)  (●)゚o:|:
  :|:::::::::| "" .♭""l |:  :/   /  .r'~"''‐--、):    :!:::l::::l ~"  ,,   ~ l:i:l:
  :|::::::::|、 r‐― ァノ :|::,r''"´⌒ヽ{   o゚(●)ハ(●)゚o:    :ヽ:i::!、 r‐― ァ ノノ':
:, -‐(⌒)\ヽ⌒ノイ::::::|:/:    :\  (⊂`-'つ)i-、: :, -‐(⌒)\ヽ⌒ノ/.
:l_j_j_j と)\__フヽ::::::|:       : `|. (__,,ノヽ_ノ,ノ :\:l_j_j_j と)\__フヽ:
  :|::::ヽ    :i |:::::|: :, -‐(⌒)   :l  ヽ⌒ソ ,ノ   :ヽ   :ヽ    :i |:
  :|::::::|   :⊂ノ|:::::|: :l_j_j_j と)  :| 、、_フj''  :⊂ノl:   :|  :⊂ノ|:

286:デフォルトの名無しさん
13/03/04 01:06:12.18
以上の事なんか全く解らなくても適当に作れちゃうのが旧VB
困ったもんだ

287:デフォルトの名無しさん
13/03/04 09:01:19.81
まあC#がノビシロのない言語であることは認める。
JavaもOracleになってから先が見えてきた。
VBが一番良いとは思わないが
プラットフォームがWindowsオンリーなら最強だろう

288:デフォルトの名無しさん
13/03/04 13:42:58.25
つC++

289:デフォルトの名無しさん
13/03/04 14:04:23.11
C#はC++よりマイナー

290:デフォルトの名無しさん
13/03/07 00:23:06.31
テキストブラウザでも作るか

291:デフォルトの名無しさん
13/03/07 20:46:49.84
あの頃の勢いはもう無い

292:デフォルトの名無しさん
13/03/09 01:54:36.75
虫籠(ホイホイ)に入れました。

293:デフォルトの名無しさん
13/03/09 15:28:39.37
phpもJavaもVBもCもC#もも経験してきた俺が言う。

C#は良い。

.NETになってからのVBとC#を単に比較すると、
ラムダ式とかの機能的な面で違いはあるが、オブジェクト指向的な
面でどっちでもいい。

ただし、

  If(条件){
  }

と書くか

  If 条件 Then
  End If

と書くかで、タイプ量の違いで、俺はC#が好みである。

294:デフォルトの名無しさん
13/03/09 15:34:40.49
vb.net使ってると毎日のように
もうC#でいいじゃんって思うな

295:デフォルトの名無しさん
13/03/09 15:43:13.29
旧VBでC#の宣伝するなウィルス野郎が!

296:デフォルトの名無しさん
13/03/09 16:11:56.25
>>293
タイプ量って重要ですよね。

僕もタイプ遅いから文字数が倍違うと
仕事の速さも倍違います。

297:デフォルトの名無しさん
13/03/09 16:13:18.73
.NETはインテリセンスとかいうので自動補完してくれんじゃねーの?
ここは旧VBスレだ.NETは巣に帰れ

298:デフォルトの名無しさん
13/03/09 18:14:00.03
c#は
if ()
{
}
ってなるから嫌い

299:デフォルトの名無しさん
13/03/09 18:30:53.65
プログラミングの本質ともいえる要素のブロック化をもっとも端的に表現できるのが{ }という記号だろう

() という記号も実はその派生形なわけだが ()と { }の違いは?

300:デフォルトの名無しさん
13/03/09 18:49:05.09
>>299
態々VBスレでやる必要ないだろ。
というよりスレタイが読めないくらい日本語できないってことか。

301:デフォルトの名無しさん
13/03/09 19:19:59.29
>>299
どの位置にカーリーブラケットが来るかって話じゃないの?
if () {
}

if ()
{
}

302:デフォルトの名無しさん
13/03/09 19:28:47.23
>>301
スレタイを死ぬまで声出して読め。

303:デフォルトの名無しさん
13/03/09 21:12:13.30
If *** Then
End If

If *** _
Then
End If

304:デフォルトの名無しさん
13/03/09 21:19:53.72
>>302
こwとwわwるw

305:デフォルトの名無しさん
13/03/09 21:50:11.56
インタプリタならなんでもいい。
VB6のインタプリタIDE環境に慣れた体には
エディット、コンパイル、リンクのビルド型環境にはもう戻れない。

306:デフォルトの名無しさん
13/03/09 22:38:52.76
そんなあなたにF#
インタープリタ付だぜ

307:デフォルトの名無しさん
13/03/09 22:39:59.56
インタプリタIDEって何のこっちゃ。
言っちゃ悪いが馬鹿丸出しだな。

308:デフォルトの名無しさん
13/03/09 23:39:25.87
>>307
そんな事にバカ丸出しで反応してるお前が滑稽で笑えるんだが?

309:デフォルトの名無しさん
13/03/09 23:40:45.52
普通はスルーだろ なにが癇に障ったとか

310:デフォルトの名無しさん
13/03/09 23:41:17.50
放っておいてやれよ

311:デフォルトの名無しさん
13/03/09 23:41:49.64
うむ

312:デフォルトの名無しさん
13/03/09 23:42:37.06
>>307
滑稽というかアホ猿w

313:デフォルトの名無しさん
13/03/09 23:48:42.96
触るとはじけるホウセンカの種
インタプリタIDEではじけたホウセンカの種
こっち飛んでくんな!wwwwwwwwwww

314:デフォルトの名無しさん
13/03/12 19:35:10.40
VB6に良いとこはある。
C#に良いとこはある。
VB.NETに良いとこはある。
Javaに良いとこはある。

ガベコレの無いCとC++にも良いとこはあるが
ガベコレの無い時点で、もう関わりたくない言語と言える。
まあガッツリ組み込みで高速な動作させたいんなら必須だけど。

315:デフォルトの名無しさん
13/03/14 02:10:35.06
VB6ぐらい簡素な方が楽だと思った

316:デフォルトの名無しさん
13/03/14 11:11:07.31
windows7で使ってる?

317:デフォルトの名無しさん
13/03/14 14:54:32.31
yes

318:デフォルトの名無しさん
13/03/16 03:14:03.30
サードパーティ製のCOMなんかは怪しい動きするけど
まあ社内用アプリ程度なら管理者権限付けとけば大概動くし
敢えて仕様がガッサリ変わっちゃってる.NETに移行する気は起きないというか
移行プロジェクトで死んだからもうやりたくない
動くものはそのままそっとしておくのが良いな

319:デフォルトの名無しさん
13/03/16 04:28:26.01
動いているシステムは良いシステムだ。
至言だ。

320:デフォルトの名無しさん
13/03/16 12:20:43.28
>>318
VBの場合、.netへ移行なんて無理。移行できるとしたら陳腐なソフトだって事。
Twipsのスケーリングに依存するようなアプリはまず移行不可、つ、大多数がそうだがw
ゼロから作り直した方がいい。いいと言うかそれしかない。
現物のVB6で仕様が明確になっている分新規より楽だろ?

321:デフォルトの名無しさん
13/03/16 16:24:56.77
新規で作り直す価格より旧VBのメンテの料金を吊り上げればいいのだよ

322:デフォルトの名無しさん
13/03/16 20:44:31.47
>>320
現物で仕様が明確になってるが故に数値は全部Long、配列での力技のデータ操作、自作Round関数が移行されるんですね

323:デフォルトの名無しさん
13/03/21 18:58:14.25
Windows Blue はWindows8 RTなんだよね? VB6 が動かないのは当たり前じゃないか

324:デフォルトの名無しさん
13/03/22 00:25:29.20
>>323
え?
Windows8.1だろうと思ってた…

325:デフォルトの名無しさん
13/03/22 07:10:41.68
何でお前ら移行しないの?

326:デフォルトの名無しさん
13/03/22 11:45:44.28
>>325
お客にあわせるから

327:デフォルトの名無しさん
13/03/22 11:48:03.86
Blueといえばブルースクリーン

328:デフォルトの名無しさん
13/03/22 12:18:25.22
Windows8?バージョン8とか古すぎワロタw 俺なんてWindows95だぜバージョン95だ!

329:デフォルトの名無しさん
13/03/22 13:09:41.93
つマンネ

330:デフォルトの名無しさん
13/03/23 09:21:42.50
つマンネどころじゃないだろ?こっちは即死だわ

331:デフォルトの名無しさん
13/03/23 09:41:22.71
死体はしゃべるな

332:デフォルトの名無しさん
13/03/24 00:44:43.72
>>322
自作Round関数は無いけど、配列での力技のデータ操作はやってる。

なぜならば…

VB6のコレクションって、なんでも入るっしょ。
Javaのような静的型付が無い。

いや、専用のCollection作るっていう手もあるけど、
VB6はパッケージの仕組みがないから、モジュールばっかり
やたら増えて管理しにくくなるのよね。

だからJavaでいうところのmodelは、配列で操作してる。

尚、コントロール配列はほとんど使ってない。
なぜならば、別に用意したクラスの中にWithEventsで格納してしまうケースが
多いからだ。コントロール配列にすると、これで不都合が増える。

333:デフォルトの名無しさん
13/03/24 15:23:07.55
332>>
>>配列での力技のデータ操作
もう少し詳しく聞いてみたいかも

334:デフォルトの名無しさん
13/03/24 19:16:04.33
↓のようにobjにCommandButtonを入れておいてobjのClickイベントを呼び出させるようなことはできますでしょうか?

Dim obj As CommandButton
If なんちゃら Then
 Set obj = XXXX
Else
 Set obj = YYYY
End If

335:デフォルトの名無しさん
13/03/24 19:19:43.89
やった事無いけどググったら.Value=Trueで出来るみたい

336:デフォルトの名無しさん
13/03/24 19:22:04.21
>>335


337:デフォルトの名無しさん
13/03/24 19:23:26.69

obj.Value=True
でクリックイベント発生しない?

338:デフォルトの名無しさん
13/03/24 20:53:50.47
Call Command1_Click()
でいいだろ

339:デフォルトの名無しさん
13/03/24 21:30:08.90
>>335
ありがとうございます!

Valueプロパティのヘルプみたら

コマンド ボタン コントロールの場合 - 真 (True) はそのボタンが押されたことを示します。既定値は偽 (False) で、そのボタンが押されていないことを示します。コードで Value プロパティを真 (True) に設定すると、そのボタンの Click イベントが呼び出されます。

と書いてありました。

どうググったらその回答にたどり着いたのかもしよければ検索ワードを教えてくださいませんでしょうか?


>>338
最悪、それぞれにXXXX_ClickやYYYY_Clickとやること考えたのですができればobjでClickイベントを呼べた方がいいなと思ったんです。

340:デフォルトの名無しさん
13/03/24 22:25:36.15
>>334
それ、ローカル変数みたいだけど、
モジュールのメンバにして、

Private WithEvents obj As CommandButton

ってしてやると、イベントを拾ってくれるよん。

341:デフォルトの名無しさん
13/03/24 22:28:43.39
「CommandButton clickイベント 発生させる」でググると検索結果1ページ目の下のほうに「IT工務店 店主のつぶやき日記」サイトがあってVBAでそのクリックの話してるね

342:デフォルトの名無しさん
13/03/24 22:29:22.51
RaiseEventじゃ出来んのか?

343:デフォルトの名無しさん
13/03/25 22:42:34.17
VB6の書籍はいっぱい出てるのに、
コントロールの使い方みたいな本ばっかだから
VB6に手を出してちょこっと動くものができました、
けど難しい事はできません、みたいな人はそれなりにいる。

OPPの基本的なところから、っていう学習の仕方しようとしたら
VB6って絶対向いてない。

344:デフォルトの名無しさん
13/03/25 23:22:30.27
実装継承が出来ない時点でおわってるんだけどね

345:デフォルトの名無しさん
13/03/25 23:50:15.19
>>344
俺はJavaや.NETから入ったんで、OOP的なやり方はもちろん
わざわざVB6で学習し直す事は無かった。

VB6でできるのは、ごくごく簡単なOOPの使い方ぐらいなのはわかってる。
継承が無いから使えるデザインパターンも限られる。
抽象メソッドも使えない、インナークラスも使えない、あれもこれもできない…

が!!!

やっぱOOPの良い所って、Cでいう構造体にメソッドも梱包して
データ処理をものすごく簡潔に記述できる点は大きい。
VB6でクラスが扱えるのは、それだけで助かるとは思う。

基本的にシングルスレッドだから、余計な事も考えずに設計できるのも良い。
まあマルチスレッドを扱いたい事もしばしばあるけどな。

で、VB6の良いところはあるのに、書籍が充実してないから
VB6からプログラム始めて、ロクでもないプログラムしか書けないってところに
>>343の意図がある。

346:デフォルトの名無しさん
13/03/26 00:18:13.02
10年前に終わってる言語に何を言ってるのアホか。
っていうか言っちゃ悪いけど>>343みたいなポエマー丸出しの文章、よく恥ずかしげもなく書けるよな。


次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

4541日前に更新/211 KB
担当:undef