VBプログラマ質問スレ(Ver.6.0 まで) part62
1 :
デフォルトの名無しさん :
2013/02/15(金) 16:54:12.79
8 :
デフォルトの名無しさん :2013/02/16(土) 17:29:02.07
マジかよ VB6で動的にDLLを使うの無理なのかよ Susieプラグインとか使えねえじゃn
>>8 使えるが?
たとえばExcelオブジェクトをCreateObjectするとか
そういうことだろ
cdeclで呼び出されているDLL関数をVB6で使う方法ってある? 今とても困ってます。
あるわけねーだろ。はい論破。
>>11 VB6で使えるように(他の言語で)
ラッピングすれば良い。
バインディングってやつさ。
はい論破 1. Declareステートメントではstdcall呼び出し規約しか使えない? → 「VB6.0 で swprintf を使ってみる +α」、「VB で機械語を実行する - プログラミングの丘」より、cdecl呼び出し規約の関数も呼び出すことが出来ます。
記事としてはよく見るが宣伝だろ? 実際に出来たというコードを見た事がないな
17 :
デフォルトの名無しさん :2013/02/16(土) 19:22:09.18
あるdllのエクスポート関数がstdcallで宣言されているかcdeclで宣言されているか 簡単に見極める方法ってないかな?
>>17 そんな事ができれば苦労はないわ。カットアンドトライでどっちかが動くかやってみろ。
確率1/2だろうがwww はい論破。
VB6でアセンブラって・・・。 なんか昔のボーランド Turbo Cのインラインアセンブラを彷彿とさせるね。 これは目から鱗ですわw
昔からBASICと機械語はよく組み合わせられる。 昔有名だったベーシックマガジン 通称ベーマガの投稿プログラムでも DATA文で機械語を入力実行していた
>>21 一見水と油の関係のように思えるが面白いもんだね。
>>17 逆アセンブルすればええやん。リバースエンジニアリングってやつよ。
24 :
11 :2013/02/16(土) 20:04:35.17
CallCdeclFunctionを使ってみました。完璧です! これだとcdecl DLLをラップしたstdcall DLLを作成する必要がなく ダイレクトに使えて非常に使いやすいです。 心より感謝申し上げますm(_ _)m
25 :
デフォルトの名無しさん :2013/02/16(土) 20:06:24.72
俺も今までこの手の事をするのにVC++ 6.0でラッパーDllを作ってたわ 世の中には頭イイ人がいるもんだな
認めない。VBでcdeclは呼び出せない。絶対に認めない。はい論破。
27 :
11 :2013/02/16(土) 20:29:21.38
>>26 cdeclで呼び出されているDLL関数をVB6で使う方法が知りたかったので
VB6の機能としてcdeclが直接呼び出せなければならないことはありませんでした。
そのCallCdeclFunctionは圧巻だな。理論上は可能だが実現したのはその人がはじめてだろうな。 まさかメモリー上に展開して機械語を組み込むとは・・・。
POKEとPEEKだっけか
それってデータ実行防止にひっかからんのか?
>>30 スレッドを作成しているから問題無いよ。
システム上はコード領域のページ内で実行される。
つ、初心者が鼻息荒くしてみっともないぜ?はい論破。
32 :
デフォルトの名無しさん :2013/02/16(土) 21:53:03.57
>>30 ここでのキーポイントは VirtualAlloc と CreateThread です。
VirtualAlloc は、通常は大きなサイズのメモリを割り当てるときに使いますが、
コードをコピーして実行することが可能なメモリを割り当てるときにも使えます。
通常のメモリでは「実行」の属性が無いので、場合によってはエラーが発生しますが、
この関数を、PAGE_EXECUTE_READWRITE などの保護モードで呼び出せば欲しいメモリのアドレスがもらえます。
CreateThread は、本来は「スレッド」を作成し、メインのコードを実行している傍ら別の作業を行う、というときなどに使います。
ここでは、単にメモリ上にあるコードを呼び出すという目的にのみ使っています。
これは、VB にはアドレスを指定して関数を呼び出す(Quick BASIC でいう CALL ABSOLUTE 命令)が無いためで、
CreateThread 以外の関数を使うなら EnumWindows 関数など、引数にコールバック関数を指定でき、
且つ他の動作に影響を与えない関数を使用してください。
>>31 あはは、スレッドの作成とコード実行は関係ないじゃん。論破君もたいしたことないね。あはははは。
34 :
デフォルトの名無しさん :2013/02/16(土) 21:58:53.87
VB6.0でCreateThreadを使うのはかなり怖い。 ミッションクリティカル気分を味わえるな。
>>35 それはデータ実行防止にひっかかるね。アウト。
Windows 8はハードウェアでDEP強制だから厳しい罠
関数ポインタと引数リストを引数にして渡せばそれを実行してくれる関数と作ってDLLにすればいいの?
機械語無しでwsprintfWをVBから呼び出すてるのな
>>41 それは元々DLLの関数を呼び出すものなのでDEPは問題無い。
しかもcdeclな関数を呼び出せる。
機械語というリスキーな操作は無駄だった
つまりどういうことだってばよ?
>>43 チクショー!3ページ目からは会員限定かよ!
>>41 引数をすべてVariant で指定するところが何とも気持ち悪いな
機械語のほうがスマートだな
どちらもトリッキーな手法なのには違いない
しかし最近のこのスレ、真面目にすごくタメになる内容になってないか? 昨今の論破君荒らしの状況に比べるとまるで別スレだわねぇw
こういうTipsを個人個人が自身のHPで細々と紹介するにとどまってるから普及しない
>>55 恐れ入ったね。VC++6をDLLをラップするためだけにビルドしていた俺は
いったい何をやっていたのかと情けなくなる。
VB6よりVBAのほうが普及率高いからVBAからのアプローチで技巧的なコードを探したほうがいいってことか?
>>57 VB6.0は終わった言語だが、VBAはOfficeで進化しつづけている言語なので
VB6.0のスキルは実は非常に貴重なのさ。
JavaとかC#とか言語の首位を競い合っている連中は
会社がリストラをはじめたら真っ先に処分される連中だが
VBAを押さえておけば社内で尊重される
実は俺がそれでバレンタインにはチョコを17個もらった
関係ない?いやあるんだよこれがね
有用な情報載せてる個人サイトで一番困るのは突然の閉鎖で参照できなくなることだな
>>60 俺は有用な情報をみつけたら片っ端からInfoPathに入れてSkyDriveにシンクしてるから
いつ閉鎖されても大丈夫
個人サイトだろうが企業サイトだろうがストレージサービスだろうが いつ閉鎖するかも知らんリスクは当然ついてまわる いいもん見つけたら即ローカルに保存すべし
InfoPathのあいまい検索が威力を発揮するな。
68 :
デフォルトの名無しさん :2013/02/17(日) 21:39:30.09
>特定のメソッドを文字列で呼び出したりできる CallByNameじゃあかんのか?
オブジェクトブラウザで非表示のメンバを表示するとstrptrとか隠し関数とか出てくんのな
>>69 なにを今更・・・。
キミにオススメの隠し関数は
strYourIQ
w
>>70 何故にstr?
そして相手に使わせるならYourではなくMyだろ?
君も自分のIQの低さを知っておいた方が良いのでは?
>>72 よくわからないけど、お前みたいにファビョって噛みついてくる奴を指して Your なんじゃね?
strなのは小数点以下が丸められるのを防ぐためだろう
おそらく 0.0000000001とかだろうからw
最近、論破君はやられっぱなし
苦しすぎる言い訳w
妥当な見解じゃね?
あっ、はい論破。
ロンパールームかよ?うつみみどりを呼んで来い!w
ろんぱり
はい、ろんぱり。
ケロンパ、ケロンパ
82 :
デフォルトの名無しさん :2013/02/23(土) 12:50:42.11
Windows Blue リリースと同時にVB6.0 ランタイムサポート終了の噂 出元が広報なところが信憑性の高い理由だと?
Windows Blue リリースと同時にVB6.0 ランタイムサポート終了の噂
でもと =
>>82
今までに何度同じような未公式発表があっただろうか
今度は公式発表じゃない?SVから情報っぽいし
さすがにもう退役でしょう。何の不思議もない。 逆に今までサポートされていた事が脅威だよ。
VB.NETもそこそこ普及したし、C#も来てるし、もう旧VBのサポを停止すりゃいい
88 :
デフォルトの名無しさん :2013/02/23(土) 19:28:22.12
結局C#は失敗だったね。Javaユーザーからは相手にされなかった。 Javaのオープンソース資産をC#へ移植しドヤ顔で商用化しているオフショアが後を絶たず 日本企業が元はJavaの資産だとは知らずに金払って使っている実態とかね。 業界からはとにかく嫌われ者のC#ですが、VB.netは徐々にシェアを伸ばしていますね。 ここでVB6のサポートが終了すればJavaに迫る勢いになるのは必至どす。
89 :
デフォルトの名無しさん :2013/02/23(土) 19:33:26.61
旧VBでしかできないこと、普通のCやC++でしかできなこと、Javaでしかできなこと、.NET系のVBでしか出来ないこと、C#でしかできないこと、C++でしかできないこと これらを比較して旧VBのメリット・デメリットを明確にし、旧VBを使うべき事案を絞り見つけだすんだ!
90 :
デフォルトの名無しさん :2013/02/23(土) 19:43:15.12
VB6.0はOLEを使わなければCコンパイラと変わらない実行性能のコードを吐くことが可能。 net系はJITにしようがどうしようがバイナリレベルでは重複コードや冗長コードが満載となる。 でもプログラマーが糞だとどっちも糞言語でしかない。これは何を使っても同じって事。
そうやってVBしか使えない自分を必死で擁護して虚しくないのかね。 まあたぶんそういう自覚がないから虚しさも感じないんだろうけど。 馬鹿って幸せでいいよね。俺は不幸でも賢いほうがいいけど。
《参考》 プログラミング言語開発の歴史 Ver1.21 1950||||1960.|||1970.||||1980||1990|||| 2000.||||2010|||| ALGOL→ FORTRAN → BASIC ──→ Sinclair BASIC ───→ DarkBASIC → DarkBASIC Professional [ 独立系 / Windows ] │││ │ │││ │││ │ ││└───→ MSX-BASIC ───→ 99BASIC → 終了 [ 独立系 / Windows ] │││ │ │└──→ GW-BASIC ──→ QuickBASIC → 終了 [ Microsoft / DOS ] │││ │ └─→ CBM-BASIC ──→ AMIGA BASIC → 終了 [ 独立系 / AMIGA ] │││ │ │││ └──→ FORTRAN77 → FORTRAN90 → FORTRAN95 → 終了 [ 独立系 ] │││ └──→ FORM → 終了 [ 独立系 / MZ-80K ] │││ ││└──────→ PASCAL ────→ C ─→ C++ → VC++ → 終了 [ Microsoft / Windows ] ││ │││││ │ └────→ VC# [ Microsoft / Windows ] ││ │││││ └───────→ Objective C [ Apple / iOS / Mac ] ││ │││││ ││ ││││└──────────→ Visual BASIC → 終了 [ Microsoft / Windows ] ││ ││││ └──→ GLbasic [ 独立系 / マルチプラットフォーム ] ││ ││││ ││ │││└─────────────────→ AppGAME Kit [ 独立系 / マルチプラットフォーム ] ││ │││ ││ ││└─────→ Delphi → 終了 [ 独立系 / DOS / Windows ] ││ │└─────→ TL/1 → 終了 [ 独立系 / MSX ] ││ └─────→ PALL → 終了 [ 独立系 / MZ-80K ] ││ │└───→ PL/1 → 終了 [ 独立系 ] └──────────→ VTL → GAME-MZ [ MZ-80K ] ─→ GAME-86 → RVTL [ 独立系 / Windows / Linux ]
>>91 > 自分を必死で擁護して虚しくないのかね。
> ま あたぶんそういう自覚がないから虚しさも感じないんだろうけど。
> 馬鹿って幸せでいいよね。
実体験に裏づけされた、説得力ある文章だな (w
>>91 「VBしか使えない自分」ってもしかしたらお前自身の事じゃないのか?
なぜならそうでない俺からするとそういう発想さえ浮かんでこないからだ。
まあ確かにそういう人もこの世の中にはいるかも知れないが
涙拭いてガンバレよ。
95 :
デフォルトの名無しさん :2013/02/23(土) 22:38:09.87
問題はVB6しか使えない人が、なぜかVB.netへ移行できない事なんだがなw
>>92 VB.netを抜いたのはわざとか?wwwwww
たとえばStringBuilderもなければコレクションに代表されるライブラリも何もない、 かと言ってポインタ使って生のメモリを操作することもできないVBがCと同じぐらい高速って、 こういうのを必死の擁護と言わなくて何をそういうのかね。 まあ言って分かるようならVBerなわけがないんだけど。
>>97 そういう問題でもない。
VB6のソフトウェア資産は単純にコンパイラが吐いたものだけでなく
ActiveXやCOM、DLLなどの集合体になって資産と化している。
言語は言語であって資産ではない。StringBuilderの有無など鼻糞に過ぎない。
>>99 そういう問題じゃないと君が思うのは、君が「そういうのが問題になる」ような
コードを書いたことがないVBerだから。馬鹿じゃないのか。
だいいち自分がVBはC並に高速だと言い出したのじゃないのかよ。
ポインタ使って生のメモリを操作することができるのがすごいなら 俺はMSDOSでMicrosoft Cコンパイラ ver4.0くらいが一番すごいと思うな。 ver 5になると過度な最適化で変な事になる。 何事もバランスが大切って事ですわ。高速論議は経験の浅い 未熟なプログラマがすることだもんね。
>>101 > 何事もバランスが大切って事ですわ。高速論議は経験の浅い
> 未熟なプログラマがすることだもんね。
全力で同意せざるをえない。
StringBuilder基地概って周期的に沸くよな?
>>92 C#がC++からの派生とはどうしても考えられない俺がここにイル
>>105 GLBasicをVBから派生させている段階で
専門学校生の発案であることがわかりそうなもん
VBってBASICからの派生じゃなくてPASCALからの派生だったのか
C#の血統はこんなところだな。 C++ 戸籍上の父親 VB6 代理母 java 卵子提供者 J++ 書類上の卵子提供者 Delphi 精子提供者 ヘルスバーグ 受胎告知
>>109 良くわかってらっしゃる。熟練プログラマーとお見受けしますた!
VB.net 一卵性双生児
ゴスリンとヘルスバーグでウケとかタチとかの薄い本見たときはぶっ飛んだぞ。
GetPrivateProfileStringで全角文字使えないかんじ?
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文字分のメモリはどこいっちゃったの?って感じで これってヤバイの?大丈夫なの?
sには固定サイズの文字列渡したほうがいいの? Dim s As String * 20 みたいな
文字数とバイト数は違うぞ LenじゃなくてLenB使ってみ
>>117 全角を使うときは値をダブルクォーテーションで囲えアホが
>>119 それに何の意味があるのだろうか
Len("abc") > 3
LenB("abc") > 6
Len("あいう") > 3
LenB("あいう") > 6
Len("abあ") > 3
LenB("abあ") > 6
GetPrivateProfileStringは最初の=以降から文末までを読み込むようで "あいう"えお" という二重引用符を間に挟んでやると 文頭と文末の引用符を除いた あいう"えお を返してくれたよ
>キー名に関連付けられている文字列が単一引用符や二重引用符で囲まれている場合、GetPrivateProfileString 関数はこれらの引用符を取り除きます。 単一引用符でも取り除かれるのか これは意外だ つかVB6付属のMSDNには文字列書き込むときには引用符でくくれとは書いてないように見えるのだが
今どきiniとかないわー xmlにしろよ
っていうか質問の内容を勘違いしないで 全角文字が取得できないなんて一言も言ってないし 20文字分(40bytes)のメモリを割り当てた変数が 全角含む文字列渡すと全角1文字につき1byte分減って戻ってくるけど これってメモリ関連のトラブルの発生源になったりしないか聞きたいんだけど
固定長文字列にしたら元の文字列サイズ分ちゃんと戻ってくるのな 可変長文字列をGetPrivateProfileStringに渡しちゃまずいのか?
>>125 少量のキーと値の関連付け保持に便利じゃん
レジストリは使いたくないし、xmlだと一部の文字にエスケープとか使って配慮しないといけないし
>>126 ANSIとUNICODEの変換でそう見えるだけ
UNICODEでの文字数とANSIの文字数(バイト数)は一致しない
固定長文字列でもちゃんと戻ってくるかと思ったけど違ったわ
"A"で初期化したけど可変長文字列と同様に減って戻ってきてるわ
減った分が32、半角スペースで埋まって戻ってきた
やはり仕様なのか、もしくは全角使うのがまずいのか
GetPrivateProfileStringAじゃなくGetPrivateProfileStringWを使うべきなのか
>>129 APIが全角1文字を半角2文字分としてよこしてVBが2文字分の領域を確保するけど
バイトコードからVBが全角文字だと判断して2文字分を1文字分に減らすってこと?
あ=82A0 をAPIが 82 と A0 の1バイト文字(半角)2文字分としてVBに渡して がVBで確保した2文字分の領域4バイト 0000 0000 に上書きされて 0082 00A0 となったところをVBが全角文字と判断して 0082 00A0 → 82A0 という1文字分(2バイト)減らして変数に戻すってこと?
VBが確保した領域10文字なら10バイト分をAPIに渡して 文字列が「あAA」なら APIは10バイトの最初2バイトを82、A0で埋めて3バイト目を65、4バイト目を65、5バイト目を0にしてVBに返し VBは10バイトを1バイトずつ解釈していってunicodeに変換して変数に再割り当てしてるってことなのか? でもそれだと適当な文字で初期化した固定長文字列の減った部分が半角スペースで初期化されてるのはおかしいし どうなってんだこれ
何このバカ? 値が取れればそれでいいだろ?頭使えよ。
>>129 なんかわけわかんねえレスだなと思ってたらGetPrivateProfileStringの戻り値の話?
戻り値は書き込んだバイト数返すはずだからLenやLenBした値と違うのは当たり前じゃね?
そうじゃなくて変数の割り当てメモリが減ってるって話なんだけど
GetPrivateProfileString自体がVB6の関数でも何でもないのに戻り値が理不尽だと騒ぐバカ。 相手にする方がどうかしてる。
だれも戻り値の話なんかしてないだろ 確保しておいた変数のサイズがAPIに渡したら変数のサイズが変わったって言ってんだよ 文字列の長さの話じゃねえし戻り値の話でもない
>>136 冷静に。
サイズなんか変ってないよ。
BSTRとみなした時の文字数が変っただけ。
変数の割り当てメモリはどうやって調べた? 文字列の長さ=割り当てメモリじゃねーぞ。
>>136 なに興奮してんだこのアホ。関係ない戻り値で反応しやがったw
>>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文字 _ は半角スペース)
固定長文字列を渡した場合、全角含む文字が渡された場合に後部に半角スペースが入るのは何でなの?
これって確保した変数サイズが変わったってことじゃないの?
>>140 半角スペースだって分かってるならTrimすればええやん 初心者?
> これって確保した変数サイズが変わったってことじゃないの? 違います。終了。
>>141 Trimする意味がわからんのだが?
>>142 全部Aで埋めたはずなのに何で後部の文字が半角スペースになるの?APIの仕様に書かれてない処理なんだけど
>>140 とりあえず2つの問題を区別しよう。
(1) なぜ最後に半角スペースが付くのか
(2) 「変数のサイズ」(確保されたメモリ領域のバイト数)は変ったのか
(1)は本当だと仮定して理由は分からない。
(2)は変ってません。変ったのは、20バイトのメモリ内のデータをUTF-16の文字数と
みなした時の文字数だけ。
>>144 Lenしたときの文字数が変わるのは可変長文字列を使った
>>117 のケースで
>>140 は固定長文字列を使ってるからAPI通したあともLenした文字数は変わってない
可変長のときなら減った文字数分の半角スペースが固定長文字列のときに後部に埋まってるという話なんだけど
固定長のとき
確保したメモリいっぱいにAの文字を埋めたんだから
APIが前部のデータを上書きしても後部はいじってないのだから
メモリをそのまま引き出したのなら後部はAのままのはずなのに半角スペースが入ってる
これでメモリに異常は起きてないっておかしいんじゃないの?
つかもういいよ 仕組み知ってる人いなさそうだし ここで質問した俺が大馬鹿だったてことでいいよ VBでAPIを使うときVBがAPIとどうやりとりしてるかの知識が足りない俺がバカでした さよなら
VB6っていうか、もうWin9x時代のこと大分忘れてるから混乱するな... 冷静に考えるとBSTRはUTF-16だから、ポイントしている領域が同じなら「文字数」が 変るのは確かに変だ。 質問者はひょっとして(今時)Aの付く方のAPIを呼んでるのかね。 VBはこの辺りブラックボックスだから困るんだけど、この場合は、恐らく 関数の呼び出しの前後で.NETでいうマーシャリングが入るんだろう(想像)。 呼出し後に文字数が変るのはこのためか?
APIではバッファの最大長を指定する 戻りでヌルターミネートされた先の領域なんて保障されてないだろ API呼び出し後にANSI-UNICODEの変換が入ってるから その変換時に(VBとしての)変数のサイズが変わっても不思議も問題もない
VB6からWのほうって呼び出せるのか?
呼べることは呼べる でもA呼び出すよりメンドクセ
呼び出せんのか 知らなかったわ どうやんの?
呼び出すだけなら普通に~WまでDeclareして呼ぶだけ 文字列渡したらどうなるかは知らん
当然ながらメンドクセと言ってる部分のことを尋ねているのだが
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)
正解!
%TEMP%フォルダに DF~.tmpというゴミファイルが大量にたまってると思ったら 旧VBのせいかよ!
158 :
デフォルトの名無しさん :2013/02/27(水) 21:42:33.26
いつの間にかVB.netをVBって呼ぶようになったのね。 VBできますか?って言われたから、てっきりVB6.0の事かと思って「ハイ!」と答えたら あとでVB.netだったと分かりさあ大変。納期は3週間しかないけど対応できるだろうか? バカだなおれorz
アイコン使ってる旧VB製のやつが原因か まぁIE9でも作られてるが・・・
アイコンなんて使ってないけど?
変数のポインタアドレス渡すとか何か怖いな
>>155 ていうかこれ書き込まれる文字コードはunicodeってわけじゃないのな
引数としてunicodeが渡せるってだけなのな
どっちみちファイルにANSIで書き込まれるのならAとWどっちを使っても同じやん旧VBからは
INIファイルの先頭にBOMがあるかないかで動作が変わったような記憶が。 違ってたらごめん。
>>161 ポインタアドレスってなんだよ?ポインタ自体がアドレスだろうが?
それともポインタのポインタか?そんなもん渡してませんが何か?
これだからVB6オンリープログラマは怖いわ・・・。
ポインタってアドレスを指す変数のことじゃなかったのか・・・勉強になるなこのスレ
おとなしくxmlを使えばいいのに
>>165 いつからポインタが変数になったんだよ?w
配列なら変数だな
普通の変数は値を保存しているけど ポインタは変数の値を保存しているメモリのアドレスを保存している変数
ポインタは変数ではないよ。そんな風に教えたのは一体どこの専門学校だよ?大原か?
171 :
デフォルトの名無しさん :2013/02/28(木) 23:23:23.90
>>170 ググるとポインタは変数ですと説明しているサイトが山のようにひっかかるからだろ?
アホの仲間入りをさせておけばええやんw
語義を考えれば分かると思うが、ポインタとはもともとは左辺値が入る変数やレジスタのこと。 左辺値そのもののこともポインタと言ったりするが、それは派生的用法だろう。
変数のように扱えるから、初心者はアドレス専用変数と考えると分かりやすいからでしょう。 言語仕様は関係ないでしょうから。
>>172 >ポインタとはもともとは左辺値が入る変数やレジスタのこと。
一体どんな言語を前提として言ってるのかね?アセンブラかい?
だったらWORD PTRとかQWORD PTRとかを変数と呼ぶのかい?
少なくともC言語では言語仕様上ポインタは変数ではないぞ。
変数と同じように値を代入する事はできるがな。
VB6でポインタを語っている時点で終わってる訳だが?
前スレに関数ポインタをVBから実行するテクがあったな
StrPtrとかなんで隠し関数なんだ?
>>175 だから、君が本来の意味と派生的な意味の区別がついてないだけ。
馬鹿はこれだからな。人が言ってるそばからまったく。
AddressOf 演算子を変数だと言い出す奴が出現しそうだなw
仕様と実装は別じゃね Cコンパイラがポインタを変数のように扱うかもしれんだろ
本来の意味と派生的な意味をごっちゃにしてる奴が話を混乱させているだけだろ?
「ポインタ変数」と書いてるサイト大杉ワロタ
>>183 Cの場合はポインタは型。
つまり「ポインタ変数」はポインタ型の変数と言う意味。
だから何もおかしくない。
この辺り、ポインタ変数もムーミン村とかバカボンパパと同じ系統のネーミングだなw
関数へのポインタ = 関数ポインタ 変数へのポインタ = (変数)ポインタ ポインタを入れる変数 = ポインタ変数 関数へのポインタ = 関数ポインタ 関数へのポインタを入れる変数 = 関数ポインタ変数 ここまでいえば、ポインタとポインタ変数の 違いぐらいわかるだろ。
WORD pointer ← WORD型変数 ↑ WORD型 WORD* pointer ← WORDポインタ型変数 ↑ WORDポインタ型
WORD* pointer ↑ WORDポインタ型 int* pointer ↑ intポインタ型 void* pointer ↑ voidポインタ型 ?* pointer ↑ 型名を省略して、ポインタ型 そしてpointerはポインタ型変数 変数の中に入っている値 ・・・ ポインタ
>>186 まだ言ってるのか。
概念としては、アドレスを入れる入れ物としてのポインタがあくまで先。
Cには型の概念があるから、ポインタ変数の型のことをポインタと呼ぶことにした、
という順番。まさにムームン村。
> ポインタ変数の型のことをポインタと呼ぶことにした、 してない。 ポインタは変数の中に入っている値。 ポインタと ポインタ型と ポインタ変数は それぞれ別 数値と 数値型と 数値型変数 といえば理解できるだろ?
だから語義を考えろって。生きてるうちに少しは頭使えよ。 pointer = point + er。
それで?
位置を支持するもの(変数)だからpointerって言うんだよ。 位置だけならただのpointじゃねえか。 こんな簡単な話がわからない奴がいるんだからな。
おまえら旧VBでポインタ扱うことあるの?ならこの話を続けてもいいよ
http://wiki.answers.com/Q/What_is_a_pointer_variable 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.
pointerって黒板指す奴だな
#define BASE 0xA000 WORD *pointer = BASE ← これ(BASE)が位置(ポイント) BASEがポイントであり、 pointerに入っている値(=0xA000)は ポイントを指し示すものだから、ポインタ
反論できなきゃ、お前が馬鹿ってことになる。 口を出したのなら、最期までやらなきゃ自滅だよ。
defineってマクロじゃん テキスト的にその文字列を置き換えるってだけのものなのに
東京タワーの場所 = 位置 その位置を表す数値=ポインター
2つ3つの意味を持つ言葉ってプログラミング言語にはつきものなのかな プロセスとかパイプとか
WORD point; WORD *pointer = &point;
>>199 反論てw
>>197 に反論が必要だと思ってるのか。
厚顔無恥ってのはすごいことだね。
2行目で自分で「ポイント」だと言ってる同じ0xA000という値が、
5行目では「ポイントを指し示すもの」になってることに何も疑問を感じないのかよ。
東京タワーの場所 = 位置(BASE) = ポイント その位置を表す数値(0xA000)=ポインタ 0xA000 = ポインタ 0xA000 を入れるための変数 = ポインタ変数 なにか矛盾でも?
変数の位置を指し示す値だからポインターだろ。
>>201 だから違うよ。そういうことじゃない。
その例えでいうのなら、たとえば首相の現在位置を表示する掲示板(そんなものがあるとして)がポインタ。
東経何度北緯何度というのはただの位置情報であって位置の指示者(ポインタ)じゃない。
結論まだ?
首相の現在位置 = ポイント だな。 現在位置を表す値がポインタだ。
「ポインタ演算」という言葉があることを知っていれば、 ポインタは演算できるものだってわかるはずだがね。
>>209 だから違うって馬鹿か。
それは「位置情報」であって「位置の指示者」じゃない。
「位置の指示者」って変な用語だなw ポインタは演算できるもの、すなわち 値であることは明らかだ。
しかし、「メモリ上の位置をポイントする変数 = ポインタ」というのが ポインタという概念の出発点で、あとの用法はあくまで派生的なものだ、ってそんなに難しい話か? まあ世の中馬鹿多いし、だいいちここはVBerのスレだからあれか...
>>214 だからポインタは演算できる値だって結論でただろ?
メモリ上の位置=ポイント
例えば特定のポイントに変数aがあるとする。
その変数aのポイントを指し示す変数b(ポインタ変数)がある。
ポインタ変数bの中に入っているのがポインタ
×「メモリ上の位置をポイントする変数 = ポインタ」
○「メモリ上の位置(ポイント)を指し示す値 = ポインタ」
ポイント と ポインタ は別物なんだよ。
ポイントが変数aの場所だとして、
ポインタは変数bに入っているんだよ。
>>215 そういう物の言い方って馬鹿特有だね。
馬鹿って何度言っても「位置情報」と「位置情報の指示者」の区別が付かないんだな。
っていうか、自分でポイントを表す値がポインタだ、って言ってて何の疑問も感じないんだから凄い。
まともな教育受けてるのか君って。
>>215 その説明読むと、ポインタは型のような気がするか?
>>216 その文章に反論が含まれてないよ?
簡略化すると、お前はわかってない。としか言ってないよね君。
>>217 ポインタ と ポインタ型 の違いは
数値 と 数値型 の違いと一緒です。
馬鹿にも分かるかもしれない別の言い方をしてみるか。 ポインタとは、戸籍(の現住所)みたいなもの。 戸籍は書き換えることができる。 そして、戸籍に載っている情報は住所だが、住所は戸籍じゃない。 実に当たり前の話だと思うんだが、こういう当たり前の話を延々されても 理解できないのが、馬鹿。
ポインタ と ポインタ型 の違いは 数値 と 数値型 の違いと一緒です。 0、1、2、3、4、5 これは何でしょうか? 数値ですね。 でもメモリアドレスとみなすと ポインタでもありますね。
やっぱりポインタは値か。
値がポインタだとすると、その値を参照する機能は何なの?
1つの言葉が2つ以上の意味を持っちゃいけないんですか!
だったら変数でも値でもいいじゃん
>>223 ポインタ値の参照じゃね?
それともポインタ値で指し示す先にある変数を参照したいのかな?
ポインタ値で指し示す先にある変数を参照 = 間接参照
やはりポインタは値と考えるのが 一番しっくり来るな。 ポインタは計算できるものだし。 型や変数は、計算出来ない。
>>227 間接参照とは単にポインタがポイントしているデータを参照することw
恐らく機械語のindirect addresssingから来ている
>>229 ん? だからポインタが指し示すポイントにある変数を参照することでしょ?
>>230 ポインタがポイントするのは変数なんですか?
やっばり値がポインタだと言われても、しっくりこないなあ。 ポインタの値はただのアドレスじゃないの?
変数を参照 と 値を参照 って違うものでしたっけ?
> ポインタの値はただのアドレスじゃないの? つまり、ポインタの値はただのアドレス(0xA000)とかってことでしょ?
>>232 mallocで確保した場所に変数なんかない
C言語においてポインタはただのメモリアドレスの値ですが 誰か違うって言っていた人いましたっけ?
>>233 全然違う概念なんだからしっくりくる方がおかしい。
ポインタ(戸籍)の値はアドレス(住所)かもしれないが、
住所が戸籍だなんて奴がいたら、そいつはかなり脳が足りない。
>>238 そこなんだよな、ポインタは値と言われると
じゃあポインタ=アドレスなのか?と言う気になる。
値の入れ物や、値を指す方法を示すものがポインタ アドレスはその示されてる値
241 :
デフォルトの名無しさん :2013/03/01(金) 01:59:45.04
ちょーっと ここVBスレなんすけど
>>239 なんでお前
>>238 にレスしてるの?
>>238 は明らかに意味不明、馬鹿だよね。
自作自演にしか見えないよ。
なぜかっていうと、戸籍っていうのはな。
> 人の生年月日や、どこで生れたのか、両親は誰々で、
> 兄弟はいるのかどうか、そして、いつ死亡したのかなどがわかるものです。
243 :
デフォルトの名無しさん :2013/03/01(金) 02:13:19.42
時間が変わってバイさるから復帰か
244 :
【豚】 :2013/03/01(金) 02:17:26.37
そんなことより おみくじで旧VBの将来を
多分Windows15とかなってもVBランタイムが付いてくるでしょう
Windows95くらいになってもな!
荒らしに反応する奴も荒らし 荒らしに反応する奴に反応する奴も荒らし ←俺か
ポインタ(戸籍)なんて奴がいたら、そいつはかなり脳が足りない。
もう少しタメになる話をしておくれよ 旧VBを扱わなきゃいけない案件はまだまだあるんだし 四月になれば新卒で入った新人君たちがそれらに関わるかもしれんじゃないか 有益な情報だけたのむ
pointerとpointeeの違いが分からない低能がいるのが悲しい 理解力が無く最低限の英語すら分からないで、この先技術者として生きていけるの?
話を
>>161 の原点に戻そう。
>変数のポインタアドレス渡すとか何か怖いな
つまりコイツが、「変数のポインタ渡すとか何か怖いな」と言っていればこのポインタ議論は発生しなかった。
「変数のポインタアドレス」と言ってしまったので、アドレスを示すポインタ+アドレスという意味不明な重複が発生した。
そこで、このバカがもしかしたらポインタの事を変数だと思っているのかも?という疑惑が生まれた。
しかしそれにしてもこれだけスレが伸びるとは・・・。
しかも最もポインタに縁遠いVB6のスレでwww
それいうなら、「変数のアドレス」だろw
ダメダメなC#と比べればVB6.0にいかにノビシロがあるかがわかるな。
>>252 「変数のアドレス」ならC言語風で言うなら &a でもいいはず。これはポインタではない。はい論破。
まだ ポインタ = アドレス だと思ってるアホちゃんがいるらしいw
256 :
デフォルトの名無しさん :2013/03/01(金) 09:17:57.88
ハードウェアで言うならプログラムカウンタ(PC)を変数と考えるかどうかという事だな。 JMPやCALL、PUSH、POP命令はPCの値を変更してプログラムの流れを変える。 まさにこの時、PCが変数かのようにふるまう。では代入演算命令でPCに値を入れられる命令があるかというと そんな機械語は存在しない。なのにPCを変数と考えるのか?という談義に近い。
ポインタはアドレスだけじゃなくて型も持ってるんだよ。 だから int* hoge; hoge++; とするとhogeは4足されたりする。
気を付けなければならないのはポインタは型の属性を持っているがそれ自身に型は無いという事かな。 つまりポインタが16bitとか32bitとか64bitとかの固有のサイズを所持することはない。 もちろんsizeofで見ればバイト数は明確になるが、言語仕様上それに依存したコードを書くのは好ましくない。 (制御系では頻繁にやるが)
例えばint* hoge;で確保されるメモリは4バイト? それとも4バイト+型情報分のバイト数? それとも型情報はまったく別なとこで管理されてるの?
Cに限っていえば、型はコンパイラが知ってるから コンパイルされた後に型の情報は必要ない。
なるほど
ということはポインタは型を持っているというわけではないのか。
やがて配列のポインタへの成り下がりに話題が進むのであった。 もはやVB関係ね~な。
制御系だとCのポインタのサイズはCPUのプログラムカウンタのサイズ、 いわゆるアドレス幅とイコールであることに何の疑問も抱かないのは Cをマクロアセンブラの発展形くらいの感覚で使っているからなんだな。 同じプログラマでもアプリケーションプログラマとは感性がちがうな。
16bitのx86にはラージポインタという恐ろしいものがあってな
スレが進んでると思ったら、たいてい VB6以外の言語の知識でVB6を説明しようとする話題だw
オワコンなんだから仕方ない
>>266 ヒュージポインタに比べたらそんなもん糞でしょ?w
オワコンだからといって荒らしていいわけではないでしょ。 スレを立てられないアホ、スルー力ゼロのアホがどれだけいるんだか。
プログラム云々関係なく俺の純粋思考の導き出す推論によると 変数とは値概念。ポインタとはベクトル概念 ただしこの両者は明確に概念として切り分けられないはず 何故なら空間的位置と数量的位置は同じものとみなすことも可能だからだ
哲学者ぶっても所詮は専門学校卒 文盲甚だしい
>>161 の言葉の間違いというか認識の間違いを指摘するためだけに100以上伸びるスレとかw
>>273 かと言ってレス乞食が狙おうとすると意外に難しいんだよなぁ
275 :
デフォルトの名無しさん :2013/03/02(土) 07:34:05.77
>88J#の間違いでしょ
VB6の同世代ならJ++だろ
>>275 いや、C#で間違いない。J#は論外だろ?
C#は利用者数が伸びないね インドのオフショア企業が使用しているけど あれはJavaのソースをぶっこ抜いてC#に移植するとライセンスを隠ぺいできるため。 Javaのオープンソース資産をライセンスフリーで流用するための手段に過ぎない。 それに比べると中国系のオフショア企業はC++を使用するケースが多いように思う。 インドより中国の方が正当な事をするなんて、ちょっと信じ難いけどね。
VBSやVBAなどで一般にも認知度の高い旧VBなんだからもっと優遇されるべき
>>279 XamarinがVisualStudio級の開発環境を提供するなんてどこにも書いてないけど?
こんなのが普及すると本気で思ってるのだろうか?
C#って基本はコマンドラインコンパイラだよ?
>>281 XamarinがVisualStudio級の開発環境を 提供する必要がないだろw
普通にVisual Studioで作ればいい。
ソースコードはあるんだ、最後に違うコンパイラを使えばいい。
わかってないなこの人
自称わかってる人が、 説明しないんだもんな。 面白いw
>>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: :| :⊂ノ|:
以上の事なんか全く解らなくても適当に作れちゃうのが旧VB 困ったもんだ
まあC#がノビシロのない言語であることは認める。 JavaもOracleになってから先が見えてきた。 VBが一番良いとは思わないが プラットフォームがWindowsオンリーなら最強だろう
つC++
C#はC++よりマイナー
テキストブラウザでも作るか
あの頃の勢いはもう無い
虫籠(ホイホイ)に入れました。
phpもJavaもVBもCもC#もも経験してきた俺が言う。 C#は良い。 .NETになってからのVBとC#を単に比較すると、 ラムダ式とかの機能的な面で違いはあるが、オブジェクト指向的な 面でどっちでもいい。 ただし、 If(条件){ } と書くか If 条件 Then End If と書くかで、タイプ量の違いで、俺はC#が好みである。
vb.net使ってると毎日のように もうC#でいいじゃんって思うな
旧VBでC#の宣伝するなウィルス野郎が!
>>293 タイプ量って重要ですよね。
僕もタイプ遅いから文字数が倍違うと
仕事の速さも倍違います。
.NETはインテリセンスとかいうので自動補完してくれんじゃねーの? ここは旧VBスレだ.NETは巣に帰れ
c#は if () { } ってなるから嫌い
プログラミングの本質ともいえる要素のブロック化をもっとも端的に表現できるのが{ }という記号だろう () という記号も実はその派生形なわけだが ()と { }の違いは?
>>299 態々VBスレでやる必要ないだろ。
というよりスレタイが読めないくらい日本語できないってことか。
>>299 どの位置にカーリーブラケットが来るかって話じゃないの?
if () {
}
if ()
{
}
If *** Then End If If *** _ Then End If
305 :
デフォルトの名無しさん :2013/03/09(土) 21:50:11.56
インタプリタならなんでもいい。 VB6のインタプリタIDE環境に慣れた体には エディット、コンパイル、リンクのビルド型環境にはもう戻れない。
そんなあなたにF# インタープリタ付だぜ
インタプリタIDEって何のこっちゃ。 言っちゃ悪いが馬鹿丸出しだな。
>>307 そんな事にバカ丸出しで反応してるお前が滑稽で笑えるんだが?
309 :
デフォルトの名無しさん :2013/03/09(土) 23:40:45.52
普通はスルーだろ なにが癇に障ったとか
放っておいてやれよ
311 :
デフォルトの名無しさん :2013/03/09(土) 23:41:49.64
うむ
313 :
デフォルトの名無しさん :2013/03/09(土) 23:48:42.96
触るとはじけるホウセンカの種 インタプリタIDEではじけたホウセンカの種 こっち飛んでくんな!wwwwwwwwwww
VB6に良いとこはある。 C#に良いとこはある。 VB.NETに良いとこはある。 Javaに良いとこはある。 ガベコレの無いCとC++にも良いとこはあるが ガベコレの無い時点で、もう関わりたくない言語と言える。 まあガッツリ組み込みで高速な動作させたいんなら必須だけど。
VB6ぐらい簡素な方が楽だと思った
316 :
デフォルトの名無しさん :2013/03/14(木) 11:11:07.31
windows7で使ってる?
yes
サードパーティ製のCOMなんかは怪しい動きするけど まあ社内用アプリ程度なら管理者権限付けとけば大概動くし 敢えて仕様がガッサリ変わっちゃってる.NETに移行する気は起きないというか 移行プロジェクトで死んだからもうやりたくない 動くものはそのままそっとしておくのが良いな
動いているシステムは良いシステムだ。 至言だ。
>>318 VBの場合、.netへ移行なんて無理。移行できるとしたら陳腐なソフトだって事。
Twipsのスケーリングに依存するようなアプリはまず移行不可、つ、大多数がそうだがw
ゼロから作り直した方がいい。いいと言うかそれしかない。
現物のVB6で仕様が明確になっている分新規より楽だろ?
新規で作り直す価格より旧VBのメンテの料金を吊り上げればいいのだよ
>>320 現物で仕様が明確になってるが故に数値は全部Long、配列での力技のデータ操作、自作Round関数が移行されるんですね
Windows Blue はWindows8 RTなんだよね? VB6 が動かないのは当たり前じゃないか
>>323 え?
Windows8.1だろうと思ってた…
何でお前ら移行しないの?
Blueといえばブルースクリーン
Windows8?バージョン8とか古すぎワロタw 俺なんてWindows95だぜバージョン95だ!
つマンネ
つマンネどころじゃないだろ?こっちは即死だわ
死体はしゃべるな
>>322 自作Round関数は無いけど、配列での力技のデータ操作はやってる。
なぜならば…
VB6のコレクションって、なんでも入るっしょ。
Javaのような静的型付が無い。
いや、専用のCollection作るっていう手もあるけど、
VB6はパッケージの仕組みがないから、モジュールばっかり
やたら増えて管理しにくくなるのよね。
だからJavaでいうところのmodelは、配列で操作してる。
尚、コントロール配列はほとんど使ってない。
なぜならば、別に用意したクラスの中にWithEventsで格納してしまうケースが
多いからだ。コントロール配列にすると、これで不都合が増える。
333 :
デフォルトの名無しさん :2013/03/24(日) 15:23:07.55
332>> >>配列での力技のデータ操作 もう少し詳しく聞いてみたいかも
334 :
デフォルトの名無しさん :2013/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
やった事無いけどググったら.Value=Trueで出来るみたい
? obj.Value=True でクリックイベント発生しない?
Call Command1_Click() でいいだろ
339 :
デフォルトの名無しさん :2013/03/24(日) 21:30:08.90
>>335 ありがとうございます!
Valueプロパティのヘルプみたら
コマンド ボタン コントロールの場合 - 真 (True) はそのボタンが押されたことを示します。既定値は偽 (False) で、そのボタンが押されていないことを示します。コードで Value プロパティを真 (True) に設定すると、そのボタンの Click イベントが呼び出されます。
と書いてありました。
どうググったらその回答にたどり着いたのかもしよければ検索ワードを教えてくださいませんでしょうか?
>>338 最悪、それぞれにXXXX_ClickやYYYY_Clickとやること考えたのですができればobjでClickイベントを呼べた方がいいなと思ったんです。
>>334 それ、ローカル変数みたいだけど、
モジュールのメンバにして、
Private WithEvents obj As CommandButton
ってしてやると、イベントを拾ってくれるよん。
「CommandButton clickイベント 発生させる」でググると検索結果1ページ目の下のほうに「IT工務店 店主のつぶやき日記」サイトがあってVBAでそのクリックの話してるね
RaiseEventじゃ出来んのか?
VB6の書籍はいっぱい出てるのに、 コントロールの使い方みたいな本ばっかだから VB6に手を出してちょこっと動くものができました、 けど難しい事はできません、みたいな人はそれなりにいる。 OPPの基本的なところから、っていう学習の仕方しようとしたら VB6って絶対向いてない。
実装継承が出来ない時点でおわってるんだけどね
>>344 俺はJavaや.NETから入ったんで、OOP的なやり方はもちろん
わざわざVB6で学習し直す事は無かった。
VB6でできるのは、ごくごく簡単なOOPの使い方ぐらいなのはわかってる。
継承が無いから使えるデザインパターンも限られる。
抽象メソッドも使えない、インナークラスも使えない、あれもこれもできない…
が!!!
やっぱOOPの良い所って、Cでいう構造体にメソッドも梱包して
データ処理をものすごく簡潔に記述できる点は大きい。
VB6でクラスが扱えるのは、それだけで助かるとは思う。
基本的にシングルスレッドだから、余計な事も考えずに設計できるのも良い。
まあマルチスレッドを扱いたい事もしばしばあるけどな。
で、VB6の良いところはあるのに、書籍が充実してないから
VB6からプログラム始めて、ロクでもないプログラムしか書けないってところに
>>343 の意図がある。
10年前に終わってる言語に何を言ってるのアホか。
っていうか言っちゃ悪いけど
>>343 みたいなポエマー丸出しの文章、よく恥ずかしげもなく書けるよな。
良く解ってないけどなんとなく作れたってのが旧VBの仕様だからな ○○が使えない、ってんじゃなくて使う必要が有るならVBを選ぶなってのが正解 それはMS自身が言っている事だ
そうそう、そのとおり。 だから今でもVB6が生き残ってる。 VBAも進化させない。
そもそもOOPとして設計されてない言語を無理やりオブジェクト指向にしたのがVB6 OOPに向いてないのは当たり前
350 :
デフォルトの名無しさん :2013/03/26(火) 13:12:40.47
せめてフォーム名で呼び出しできないようにしてくれてたら せめてコンストラクタに引数つけることができてたら せめてオーバーロードができてたら
VB6はソースがスパゲッティすぎてバージョンアップできなかったらしいな
>>349 その無理やり部分だけでも、かなり便利なもんだよ。
非OOP時代のVBに比べて。
クラス内にデータ突っ込んで、適宜メソッドで計算結果出せる
っていう設計ができるだけでかなり便利。
構造体と関数でやってると、バラバラになるから…
>>350 フォーム名の呼び出し禁止はForm_Initializeで
Set フォーム名 = Nothing
で、禁止できる。規定のインスタンスを切るだけだけど。
引数付きコンストラクタとオーバーロードは俺もそう思う。
いや、引数付きコンストラクタだけでもいい。
既定のインスタンス(だっけ?)なんか使わなければいいだけ。 コンストラクタは、たとえばクラス名がHogeならそれに適当なプリフィクスを付けた 名前(たとえばcHoge)のモジュールをクラスの静的メンバーの入れ物だとみなす 約束にしておけば、ほとんど機能的にも可読性上も同じことができる。 VB6にはメソッドのオーバーロードがなくても名前付き引数がある。 ま、10年以上まともなコードは書いてませんけどw
逆にシングルトンとか、既定のコンストラクタを隠すことはどうやってもできないけどね
>>353 そして数年後そのコードをメンテナンスする奴が、Factoryメソッドを無視してNewしたりしちゃうんですよ
>>354 シングルトンは標準モジュール使えばいいだろう。
ただ、スレッドセーフにはできないけど。
>>356 VB6に限らないが、そのやり方はstaticおじさんみたいで気持ち悪い...のはまあいいが、
柔軟性が低い(後でインスタンス化する必要が生じた時に簡単にできない)
下手にVB.NETに機能引き継ぎしないで欲しかった フォーム名で呼び出せたり暗黙でNewしたりするかもみたいな妙竹林な動作させやがって そういうのはVB6でしか出来ません!ってなってれば移行なんて無謀な話は出なかった 俺はちゃんとしたプログラマじゃねーんだからなんとなく動いてくれてりゃ良いんだよ もうVB6最高、アバウトで適当なのが一番だよ DB参照してデータ表示するだけなんだから厳密もクソもねぇよ
既定のインスタンスは.NETで一回廃止したのに復活した経緯があるからなぁ あれは廃止したままにしとくべきだと思うが
360 :
デフォルトの名無しさん :2013/03/27(水) 10:34:59.45
PDFやXPSなどファイルでプリンタに出力するとき、ファイル名まで指定して自動的に保存する方法ないですか?
iText.netを使う
J#ですか?
ファイルに保存するのはプリンタドライバの機能だからドライバによるんじゃね
VB6用のオブジェクトが市販であるかなと思ったんですが見つからなくて。
365 :
デフォルトの名無しさん :2013/03/27(水) 14:08:15.77
VBプログラマ質問スレ(Ver.6.0 まで) part62
366 :
デフォルトの名無しさん :2013/03/27(水) 14:09:01.13
↑ごめんまちがった^^; PDFへの保存ならGrapeCityのVSVIEWつかってやったことがあるよ
367 :
デフォルトの名無しさん :2013/03/27(水) 14:14:19.11
>>367 ありがとうございます。
これVB6に対応してるんでしょうか?
369 :
デフォルトの名無しさん :2013/03/27(水) 15:04:34.62
>>368 COMに対応しています。画像ファイルで印刷結果を直出させるプリンタドライバをCOMで制御できます。
仕事でVB6はあまり使わないのですが、それでも2回VB6で納品しました。
自分はVB6を使うとき、だいたいクラスが全コードの9割以上を占めます。
決してオブジェクト指向な言語ではないですが、オブジェクト指向の便利な特徴を使えるので
VB6は言語としては悪くないとおもいます。ただ今時使ってたらちょっと恥ずかしい。
>>369 >>369 ありがとうございます、試してみます。
VB6から移行しなくてはと思ってはいるのですが、どの言語を選んで良いのか迷ったままズルズルときてしまいました。
Cはマイコンレベルでは多少経験がありますが、素直に.NETにするべきですかね?
ここまできたんだから、そのままズルズル生きていけばいいじゃないか
372 :
デフォルトの名無しさん :2013/03/27(水) 17:32:11.78
>>370 仕事でプログラミングをしている場合、新しい言語の習得は
その言語での開発依頼から始まると言っていいでしょう。
会社で新しい言語を習得したいので勉強する時間をくれとか言って通るはずもなく
また家で勉強しようと思っても休みの日は休みたくなるし
なんだかんだ言って先送りしてしまうのがオチでしょう。
まあ当該言語バージンの担当者に当たったクライアントは可哀そうですが
家電製品や車だってファーストロットは問題アリアリだし、バレないように手直しして
なんとか最後は一流のものに仕立て上げている訳です。
VB6だって始めたころに書いたコーディングなんて恥ずかしくて人に見せられません。
C言語の癖で配列の要素を必ず必要とする数から1つ多く設定してしまったり
Dimでの連続変数宣言で、実は1個しか型指定できてなくて残りは全部バリアントだったとか
それでも動いていて今でもサポート料金を月に30万円も払ってくださるクライアントがいるのですから
とにかくプロならなんとか乗り越えないと恥ずかしいです。
>>372 全くもっておっしゃるとおりです。
殆どの仕事が、ベースになるプログラムを元に客先のスタイルに合わせて多少のアレンジをするといったスタイルなので、
実績という意味ではVB6で10年以上やってきて、バグフィックスもほぼ終わってるプログラムを維持したいというのが本音です。
新たな言語に移行する場合は、ノウハウはゼロですので、最低でも数ヶ月は社内で稼働させて動作を検証してから製品化するつもりです。
それでも信頼性はがた落ちですが、メーカーがサポートしていない言語を使い続けるよりは良いのでしょうね。
374 :
デフォルトの名無しさん :2013/03/28(木) 10:04:18.08
>>373 >メーカーがサポートしていない言語を使い続けるよりは良いのでしょうね。
これは一概になんとも。。。
たとえばVB6を使用していた期間、かれこれ10年くらいはありましたが
その期間にVB6についてマイクロソフト社にサポートを受けた事は一度もありませんでした。
もちろん、サービスパックは必ず最新のものを導入していましたのでバックグラウンドではサポートを受けていた事になります。
もしVB6を使用する上で何らかの致命的なバグに遭遇したり、新しいWindowsでの振る舞いに対応できなかったり
色々問題に遭遇することはあるかもしれませんが、原因を切り分けし問題を自己解決できれば
可能な限りVB6を使い続けても問題があるようには思えません。
逆にマイクロソフトにサポートされているからその言語は安全かと言えばとんでもない。
開発しソフトウェアの品質を最も大きく左右するのはマイクロソフト社ではなく、プログラマーのあなたご自身です。
>>374 VB6が動作するOSが問題だと思います。
XPを計測制御関係など専用のOSとして供給し続けてくれるならVB6を使い続けますが、
vista以降、開発環境での動作は保証されてなく、実際に問題も生じています。
動作環境でもprogramfilesや互換性ファイルなどの扱いもあるので、そろそろ潮時かなと。
376 :
デフォルトの名無しさん :2013/03/28(木) 15:26:48.41
>>375 メーカーのサポートが打ち切られた開発環境を使用する以上
自分で工夫して問題を解決できなくなったらその時点でアウト。
アウトになってからでは遅いので、アウトにある前に対応しておくのがプロというもの。
しかし現時点においてWindows 8上でも問題を回避してVB6の開発環境を使用可能。
問題はWindowsよりも64bit対応の方かも知れない。少なくともIDEはまともに動かないし
ランタイムも64bitネイティブでは動作しない。アプリの互換に比べればOLEの互換を保つ
難しさは計り知れない。
勘違いしてる人が多いようだがVB6はサポートされてます
だって動いてるだろ?わざわざ動くようにしてあるって事だよ。
移行ガイドまで用意してくれてる親切設計だし、普通のメーカーだったらここまでサポートしない。
動かないので乗り換えて下さい、で終わりだよ。
そしてVB6自体は今後のWindowsでもサポートされ続ける可能性が高い
7でも8でも最初はサポートしないと言ってあっさりひっくり返ったからね
周りがそう簡単に止めさせてはくれないのだろう
>>376 も言ってるけど問題はそれ以外だよな
ドライバとかドライバーとかDriverとか
ごちゃごちゃいってないで公式で発表してるんだからそれよめよ
Windows Vista、Windows Server 2008、Windows 7、および Windows 8 に対する Visual Basic 6.0 のサポートに関する声明
http://msdn.microsoft.com/ja-jp/vstudio/ms788708.aspx Visual Basic チームは、Visual Basic 6.0 アプリケーションが Windows Vista、R2 を含む
Windows Server 2008、Windows 7、およびWindows 8 でも "動作する" よう、その互換性に向けて努力を続けています。
Windows 8
このサポートに関する声明が最初にリリースされた後に Windows 8 オペレーティング システムが発表されました。
このドキュメントは、Windows 8 における VB6 に対するマイクロソフトのサポートを明確にするために更新されています。
VB6 ランタイムは Windows 8 のサポート有効期間中はOSに同梱される形で出荷され、サポートされます。
Visual Basic 6.0 ランタイム ファイルは今後も 32 ビットのみであり、すべてのコンポーネントは
32 ビット アプリケーション プロセスでホストされている必要があります。 開発者の方は、Windows 7 の
場合と同様のサポートが Windows 8 についても受けられると考えていただいてかまいません。
379 :
デフォルトの名無しさん :2013/03/29(金) 01:53:36.65
32bitエミュレータとかそゆの出せば売れるかも
VB6製品のサポートが継続されているとか調子こいてるバカ。よくみろ。 IDEはすでにVista以降サポートされていない。 開発側ではランタイムは動くみたいだから使ってもいいよ的な考えなのに カッコつけてガンバッテサポートシテイマス!と言っているのは広報だけ。 実情はVB6のサポートなんか特になにもやってないので 動かなくなったらTHE END ただそれだけ
>>378 Windows 8でVB6をサポートしていると言い切るなら
IDEの画面に他の画面が重なった後に画面がリペイントされないで消えてしまう問題を早く解決しろよ
Windows XPからずっとこのまま我慢してるんだけど?
この嘘つき広報さんwww
XPからって… ウインドのリフレッシュが甘いWindowsの持病のほうじゃなく?
>>380 IDEはサポートされない。
ランタイムはサポートされる(Windows 8発売から10年間)。
ただそれだけだ。
でもサードが壊滅状態だからなぁ
だからVB.NETがあるじゃねえか
386 :
デフォルトの名無しさん :2013/03/29(金) 13:48:23.14
>>382 テーマを使うと下になった画面がペイントされないんだよ。VisualStyleと関係があるみたい。
パフォーマンスを優先せずにWindows 2000みたいな画面で使えば問題は回避できるけど
まあ普通はやらない罠
>>384 GrapeCityなんかは海外のコンポーネントの開発元ではActiveX版を出している製品でも
.NET版しか存在しないようなフリをして売っているよね。
アセンブリとActiveXの両方をサポートするとなると人件費コストが嵩むから
消費者のニーズがないように思わせて、今や.NET一択というアピールをしているけど
皮肉なことにその.ユダヤ人的な高慢なビジネスロジックが、最新の開発環境への移行スピードを
めちゃめちゃ後退させている事にまだ気づいていない。
え?
真昼間からヒマなプロプログラマさんが多いこと
ここはVB土方質問スレ(Ver6.0まで)と言った方がいいのはさておいて 当方人件費コスト0だし、製品版ActiveXなど不要だし 好き勝手に使っているだけだし そうかWindows 8でもIDEとりあえず動くのか、10nenは それにまだWindows 9でもつかえる可能性も残ってるし、どれだけお気楽なの?
サードって何?
>>387 同じ製品の英語版を海外サイトから買った方が安い
日本語問題無く使えるし
>>390 VB使いにドカタは少なかろう。
ドカタと言えばJavaだ。
WinHTTP MSXML Tar.libを使って2chブラウザを作ろうと思ふ
ごちゃごちゃいってないで公式で発表してるんだからそれよめよ
Windows Vista、Windows Server 2008、Windows 7、および Windows 8 に対する Visual Basic 6.0 のサポートに関する声明
http://msdn.microsoft.com/ja-jp/vstudio/ms788708.aspx Visual Basic チームは、Visual Basic 6.0 アプリケーションが Windows Vista、R2 を含む
Windows Server 2008、Windows 7、およびWindows 8 でも "動作する" よう、その互換性に向けて努力を続けています。
Visual Basic 6.0 IDE
2008 年 4 月 8 日以降、Visual Basic 6.0 IDE はサポートされていません。
Visual Basic 6.0 ランタイム
サポート対象のランタイム ファイル - OS に同梱されているファイル ほとんどの
アプリケーション シナリオで使用される Visual Basic 6.0 ランタイム ファイルの主なものは
Windows Vista、Windows Server 2008、Windows 7、または Windows 8 に同梱されており、
これらの OS の有効期間にわたってサポートされます
問題はVB6のランタイムそのものじゃなくてVB6のアプリ動かす上で使うその他ライブラリが動かないとかなかったっけ?
ごちゃごちゃ言うなカス
会社のコンピュータ一新するなら使ってた業務用アプリも一新して再開発依頼とかすればいいのに、設備投資の一部やろ、VB6のアプリが動くからって使い続けるのがおかしい、 あと古いコンピュータ使い続けるとこもおかしい、普通に新しいマシンにしてアプリなり作り直せば、プログラマ周りの景気が潤うのに
制御系なんて数千万~億だぜ?簡単に変えられねえよ 作った会社も当時の人間を切ってメンテできないし
>>398 ひょろっと出来るようなやつは当然そうしてるだろ
そうそう簡単に行かない、移行に年単位が想定されるようなやつの話だよ
ただまあ今だにシステム部門は非生産部門みたいな考え方が生き残ってるのも事実
モノ造り日本も良いけど、その為の下地や周りを整えてるのはシステムだっつー事に気が付いて欲しいやね
ま、現状VB6は動くしこれからもきっとサポートされ続けるよ
ExcelマクロやAccessをこの世から消さない限りね
そしてそれは不可能に近い
この世界で一番使われているシステム それはJavaでもCでももちろんVBでもなく、Excelシステムである 企業個人を問わずありとあらゆる場所に入り込んでブラックボックス化している MS一番の成功にして一番の頭痛の元である おかげでしがないVB屋でもなんとか食い繋いで行けてるんですが
そもそも作り直しが難しい仕組みにしている プログラマ自信の問題。 機能も何も増えないのに、作りなおしだけで大金を 払えといって納得できるわけ無いだろう。 VB6からVB.NETへの移行ツールは存在した。 もとからメンテしやすい仕組みで開発し、 移行ツールで対応できない部分を徐々に 書きなおしたりしていれば安く移行できたはずだ。 もVB6からいきなり最新のVB.NETに変更するのではなく、 VB.NETが出た時点で徐々にバージョンを上げていく。 .NET同士は互換性があるのだから一旦VB.NETにしてしまえば、 モジュール単位でC#に移行することだって可能だったはずだ。 アプリ開発会社が安く移行するための 技術力を持っていないからこうなる。
作り直しで大金って 設備投資ってそんなもんじゃねえの 大型建設機械だろうがラインロボットだろうが古くなったら一新するだろ コンピュータやソフトウェアを軽視しすぎなんだよ、古くなったものを一新するのはソフトウェアでも一緒で金がかかるもんであり必要なんだって意識がなさすぎ
>>403 だがいきなり全部入れ替えることないだろ。
ソフトウェアもそうしろって言ってんの。
新しい部分と古い部分をうまく融合させ
徐々に移行できる体制を整えろってーの。
電子データは劣化しない
406 :
デフォルトの名無しさん :2013/03/30(土) 10:51:17.92
VB6から.net VBへの移行に関しては、プログラムの組み方とか言う次元以前に難しい問題が山積みなんだよ。 だから移行なんて考えずに、元のソフトを仕様書だと思ってゼロから作り直すのが合理的だって事は 実際に作業をしている人間なら余程のバカでない限りわかるはず。 作り直しが難しい仕組みにしているのが問題とか言ってる奴はたぶん何も知らないで言ってる 只野キチガイ
ソフト開発で一番工数がかかるのが設計だから VB6から.netへの移植なんてほとんど工数かからない。
そうだよなVBなんていじってる奴は馬鹿
409 :
デフォルトの名無しさん :2013/03/30(土) 16:33:40.82
おまえら働けよ まったく
同じ仕様で移行するケースなんてレアじゃね?
不便だと感じてて改善してほしいとこや 不要な機能を外してほしいとか 仕様が変わるってことか?
集まるなよVB6時代の老兵どもw
WinHTTP MSXML Tar.libを使って2chブラウザを作ろうと思ふ
どっかで見かけた内容だな
逆に全く同じにって言われるとそれはそれで困ったりとか
基本的な仕様が変わりまくってるからな
いや.NETの方がしっかり決まってるんだけども。
VB6でアバウトにスルーしてた所が軒並みエラー吐くようになって死ねる
>>407 まあ、そういう感覚だよな。
でもほら、VBなんて昔から増改築が繰り返されて今に至るようなもんが多いから
昔は結構フリーダムで、開発者の趣味と気分で仕様決めてたりとか
設計書の類なんて当然無くて、当時の開発者の頭の中にしか仕様が残って無いという
移植なんてまともに出来るはずも無く・・・
どんな糞野郎のコーディングでも一見して仕様が見えてくるようになるには20年はかかる 青二才はまだここに書き込むのが早いってことかもな
>>407 > ソフト開発で一番工数がかかるのが設計だから
そうとは限らない。新規開発であれば確かに一番工数がかかるのは設計だが
すでに開発済みのシステムを修正する場合には当てはまらない。
設計は追加分だけやれば良い。
しかしコードを書く場合、修正の影響を考えないといけない。
コードを見ないとわからないような、想定外の箇所に影響があるかもしれないし
修正の前に、動作しているコードを読んで動きをきちんと把握しないといけない。
コードの詳細な動きのドキュメントはない(あったとしてもコードを読んだほうが速いんだが)
「一番工数がかかるのが設計」が成り立つのは新規開発であって
修正の場合は、設計は減って逆にプログラミングに工数がかかる。
> VB6から.netへの移植なんてほとんど工数かからない。
これは典型的な修正。設計は同じでいいならば工数は0だが
だからといってプログラミングが0以下になるわけないのは明らかでしょ?
設計は出来上がってる。その後取りうる方針は二つ
1.VB6のコードを捨て、設計を見てVB.NET版を作り上げる
2.時間をかけてVB6のコードを解析して細かい動作を把握してから、理解した内容と設計VB.NET版を作る。
どちらが早いかなんて即答できないよね?
新規開発の感覚で、修正の工数を考えてはいけない。
リプレース案件をやったことのない素人のたわごと
419 :
デフォルトの名無しさん :2013/04/04(木) 11:18:44.92
>>418 でどうだったのか示さないと
これも只のたわごと
>>419 > 設計は同じでいいならば工数は0
というのが、たいていの場合は誤り。
まず、要件定義書が無い場合がある。あっても、まともなものじゃ無い場合がある。
詳細設計書が無い場合がある。この場合は設計内容をコードから演繹する必要がある。
要件定義書が無い場合は、要件をコードから演繹する必要がある。
そして、コードを調査した結果、要件と異なる内容の実装があったりする。
どちらが正しいかを調べるのが手間。
バグらしきコードが見つかる。
バグかどうかを調査するのが手間。
じゃあ設計書があれって正しければ、 設計の工数は0でいいね?
だから、設計工数がゼロになるなんてことは、現実世界ではほとんどないって 言ってるでしょ。 実際にコードを書き始めるまでに、かなりの工数が必要になるのが普通。 真の要求と完全にマッチした要求仕様書が存在し、 その要求仕様に完全にマッチした要件定義がなされ、 それを完全に記述した要件定義書があり、 それを完全に実現する詳細設計書があり、 されを完全に実現するバグやまぎれのないコードが書かれており、 完全な自動テストが存在し、 そして今実際に動作させることはできるのなら、かなりの工数は削減できる。
DBのフロントエンドレベルの糞業務アプリの移行なら、設計なんかいらないね。
0の状態から設計を作るのと 既存のコードを解析して設計を作る。 どちらが難しくて時間がかかるかといえば明らかに後者だよ。 前者はコード読めなくてもいいが、 後者はプログラマにしかできない作業。 リプレースが新規開発よりも工数がかかるのは 火を見るよりも明らか。
それはリプレースに完璧を求めるからだよ リプレースでも新規なみのバグを許容すればほとんど工数が 発生しなくて済む
いつまでVB6と関係無い話をしたら満足するのやら
VB6の道はすべてに通ずる 馬鹿はおおなしくしてろ
もっと落ち着いてタイプしましょう。
脊髄がすぐに反射してしまわないように
430 :
デフォルトの名無しさん :2013/04/05(金) 14:09:59.78
>>425 君の会社は、バグ修正をただでやってるのだろうし、
バグ修正期間は工数に含めないのかもしれないが、
一般的には工数にはバグを直す期間も含みます。
ただでバグ修正やってるから工数にならないなんて屁理屈だよ。
最初に高い金額+短い期間(バグ・機能不足あり)で開発して、その期間のみを
工数と考え、その後のバグ修正をいう開発は保守として工数に含めなかったら
そりゃお前の会社の定義上の工数は短いだろうねw
ほんとそういうのやめて欲しいよね 食い散らかされた後始末を保守という名目でやらされるこっちの身にもなれってんだ 業務の合間に足りない仕様書書き起こしたりとか何やってんの俺状態 バグの根本対応どうするとかなんで俺が考えてるのよ明日も出勤だよ 追加料金俺に払えよもしくは接待してくれよ なんとか総研みたいなとこはもう絶対信用しねぇ
>>401 日本の99%の会社は中小企業です。
中小企業の人はExcelが大好きです。
「基幹システム」というものを知りませんから。
もう、何から何までExcelでやります。
Excelの関数が大好きです。
Excelほど使い勝手の良いソフトはありません。
関数を使いこなせると尊敬されます。
VBAなんて使った日にゃもう、
こんなんばっかり作ってるから仕事がはかどらないんだ
と言われるぐらい尊敬されます。
基幹システムを導入しようにも、Excelと連携できるように
しろとか、わけのわからない事を言われます。
Excelのフォーマットを勝手に変更された日にゃもう。
>>431 バグを許容なんだから、バグが出ても直さないんだろ
旧システムにあったバグは既知だろうが潜在的であろうが、新システムでもそのまま同じ
そういう移行も無い事はないが、まあレアケース
100%同じ仕様でのシステム移行も、まああんまりない。どうせ予算かかるならいろいろ変えたり直したりするのが普通
前提をそろえないで移行の工数がどうことか意味ない議論
一応、俺の関わったVB6製品だが、 なるべく特殊な事をしないようにしてるので、 windows7でも動いてます。ラッキーと思います。 標準ランタイムだけで済むように作ってるので。 もう、自作コントロールとかは無し。 レジストリ操作も無し。
436 :
435 :2013/04/06(土) 03:42:49.46
>>434 昔、FORTANで書かれたシステムをC言語のシステムに
更新する案件に関わった。
その、FORTRANで作ったのと同じように開発できる
C言語のフレームワークが用意されててな。
100%同じ仕様でのシステム移行で、
どーしてもわからない、1つの関数に3000ステップ超詰め込んで
しかもバグありで放置したまま使われていたシステム。
なので、バグの再現も100%のまま納品した。
ちなみに、GOTOだけは使わないで済むよう、ロジックは直した。
437 :
435 :2013/04/06(土) 03:52:59.86
>>333 例えば、データベースのマスタのデータをソフト内にキャッシュするとして、
それを配列でキャッシュするんよ。
で、検索かける時は、配列をforでナメていく。
場合によってはむっちゃ時間かかる。
VB6のCollectionは、JavaでいうListとHashMapが合わさったような
仕組みなので、キーでも検索できるので便利といえば便利なのだが、
>>332 の指摘通り、Javaでいうような静的型付けができないので、
ローカル変数でしか用いないし、専用Collectionを自作すれば、
>>332 の指摘通り、パッケージの仕組みも無いのに、やたらめったら
クラスの数が増えるので、自作Collectionは用意してない。
で、データベースのデータをローカルにキャッシュするなら、
メソッド内にStaticでCollectionを用意して、キャッシュすればいい事に
後になって気づいた。まあ、Forでナメていっても、そんなに時間のかかる
検索は無いんだけどね。
438 :
435 :2013/04/06(土) 04:01:38.82
尚、俺がなぜVB6の案件に関わったかというと、 会社の偉い人が教育目的を含めて、VB6でやらせたようだ。 VB6をやっていれば、VB.NETでもわかるだろうと。 もうこれが本当に余計なお世話で、俺はさんざんJavaやってきたので むしろ.NET使う方が、OOPに対応できて便利なのだが、 言語の制御文の書き方とかの見た目が似ているぐらいでしか 判断できない素人の悲しさで、無理やりVB6で作らされた。 で、今になって、windows7や8が出てきて、それが足かせになるという 危機感を抱いてはるようです。
自分語りはブログでやって
そんなに移行したくないならずっとVB6をやってればいいさw
なんというか動きの悪いプログラムがあって Redim Preserveを多用してあるんだが、 このせいと思うか? これってC言語でいうreallocだよな?
それ俺が作ったやつかも
444 :
桃白白 :2013/04/06(土) 16:37:31.03
>>441 桃白白はプログラムの動きが悪いことがReDim Preserveのせいだとは思わない。
よほどでっかい配列を確保してたり多用の程度が常識の範疇を逸脱してるといっても
やぶさかではないというのでないかぎり問題ない。
VBAスレと間違えたかと一瞬混乱したわw タオパイさんどーしたんすかw
荒れる予感w
>>441 推測なんかより、どこで時間が掛かっているのか調査するほうが先。
>>444 Redim Preserveすると、C言語で言うreallocみたいに
ヒープ確保のサイズが変わるけど、メモリのフラグメント
を起こすかと思ったんだ。
連続した領域を確保できるとは限らないでしょ。
新規にRedimするだけなら連続した領域を確保しやすい
とは思う。Preserveみたいに、内容を保持したままなら
プログラマからはあたかも配列がキレイに並んでいる
かに見えて、実際は離散したメモリ空間を確保してるかも
しれない、とね。
それぞれの配列の先頭アドレスを調べられたら
フラグメント起こしてるかどうかわかりそうなのに。
449 :
桃白白 :2013/04/06(土) 20:17:30.63
redim preserve は新しい配列を作ってコピーしてるよ だから1行ずつ増やしていくのは遅いよ
何言ってんだこいつ。 フラグメンテーションは動的なメモリの確保と解放によって起こる。 つまりそんなものはありふれた現象であって、もしそんな根幹部分に不具合があるのなら とっくに修正されているだろう。 っていうか、何かもう絵に書いたような典型的なVBerだな。 無能なVBerはてめえのコードの問題を棚に上げて、すぐシステム側の問題だと 何の根拠もなく思い込む。 ついでに言っておけば、配列の要素がメモリ上に不連続に配置されるように 実装されてる言語なんて聞いたことないよw そんな実装、実行効率が悪くて使えたものじゃない
>>441 がRedim Preservの話をしたいのか動きの悪いプログラムを修正したいのか
さっぱりわからん展開だな。
まあ、コードも出さずに遅い原因知りたいならエスパースレいってくれと
454 :
デフォルトの名無しさん :2013/04/06(土) 22:15:11.41
1行ずつ増やしていくのが遅ければ、100行でいけよw
>>451 >ついでに言っておけば、配列の要素がメモリ上に不連続に配置されるように
>実装されてる言語なんて聞いたことないよw
441の言う、Cのreallocって、まさに不連続に配置されてしまう仕組みになってる。
mallocはヒープから確保するけど、reallocって確保したヒープのサイズを
変えるけど、それが連続した領域になるとは限らず、フラグメント化する。
ついでに言うと、VB6でも、文字列の連結をすると、おそらくは連続した
領域で連結するとは限らないはず。
だから、前に出てた論破くんの話題に戻すけど、
連続した領域を確保して、随時MIDステートメントで置き換えていく
やり方が高速で、Stringを & でどんどん連結していくとすげー遅い。
文字列を&で連結していくと、連続した領域を確保しているとは限らない
っていうのが正解かな。
>>456 連続してないと、Cで書いたライブラリとかWin32APIとやり取り出来ないと思うんだが、君のそれどこ情報?
へぇ、C言語ではポインタ操作の必要性から 配列はメモリ上に連続していることが保証されているのか reallocは連続して確保できない場合 他の領域にコピーすることで連続であることを保証しているんだね。 勉強になった。
reallocでメモリのフラグメントが起こるのは確かだが、それはバッファが分断されるからじゃないよ。 それとVBAの文字列領域も連続してると思うし、文字列を&で結合させると遅いのは、オブジェクトを再生産するからでは?
c言語のreallocって不連続になるっけ?
なるわけないっしょw 確保されたメモリが不連続だったら Cのポインタ=メモリアドレスを 順番にたどれなくなる。 常識だよそんなのwww
reallocでフラグメント化するのは、ヒープ全体が、だ。 よくもまあ適当な事ばかりを長文でレスしようと思ったもんだ。
夜釣り
reallocした時に、連続した領域が確保できなかったらどうなるの?
またCの話題か
469 :
デフォルトの名無しさん :2013/04/15(月) 17:34:48.32
471 :
sage :2013/04/15(月) 22:17:59.18
俺もそろそろ休みてぇよorz VB6からC#への移行作業中でどっちのコードも見てると頭がこんがらがりそう。
>>469 結局8でもサポート継続するハメになって
いつ消えてもなんて事は全く無いって事が証明されちまったもんなぁ
むしろ消したくても消せない状況に・・・
今日からVB6を始める俺に何か一言ください
なんでやねん。
>>473 信念を持って、初心を忘れず、自分を信じて、頑張って下さい。
いまから自主的にVB6始めるやつは正気とはおもえん 仕事でやらされるなら貧乏くじ引かされてる
VB6の代わりは他にないからねぇ 簡単さ、ネイティブバイナリ、GCなし
Delphi 6 Personal
VB6で開発・保守していた業務ソフトをそろそろ移行しないとまずいなと思っていましたが、 皆さんのようにVB6を使っている方が多いことを知って安心しました。 とりあえず実行環境で動かなくなるまではVB6を使い続け、開発環境はWinXPを強引にインストールして使い続けます。 MSの.Netに移行して、「イノベーション」と称して仕様がコロコロ変わりそれに適応していくのは我慢できません。 まったくの新規案件はDelphiで作っています。こんな人いますか?
いてもいなくてもいいんじゃね?
ってかスレチの話題なんだが。
Delphiはいいよね。 確か今はボーランド製じゃなくて 数十万円するんだっけ?w 死滅してしまったじゃないか。
先日MSのジニアス平井さんが、VB6ランタイムのサポートはずっとやるだろうと言っていました。 これで安心です。 VB.NETなんかに移行しません。移行せざるを得ない場合は非MSで書き直します。
標準ランタイムしか使って無いならね あとはサポートの質 やるとしても致命的な障害に限定されるだようし
プログラミング&VB初心者です。スレ違いだったら誘導お願いします。 下記のコードをどう作ればいいかわからず困っています。 (For ​i~を使うのは分かるのですが条件をどう組み合わせればいいのかが分かりません) コードの正答や考え方などを教えていただけないでしょうか? 1.配列TBL(6,7)の中に、1日が金曜日で始まり31日で終わる日曜始まりのカレンダーを作成するコードを作りなさい。ただし、インデックス0の要素は使用しないものとする。 2.配列TBL2(4)の各要素にセットされている数字を小さい順に並び替えるコードを作りなさい(数字は左から8/90/20/12/2)。ワーク変数はWO1とする。 3.配列TBL(10,10)1-9行の1-9列に九九の値を代入し、10行目・10列目に縦計・横系を求めるコードを作りなさい。インデックス0は使用しない。
書いてる通りにやればいいんじゃない?
宿題ならVB6じゃなくてVB.Netだろ
488 :
桃白白 :2013/04/19(金) 14:35:04.15
489 :
デフォルトの名無しさん :2013/04/19(金) 16:06:51.37
>>488 Forループ抜けた後のループ変数使うの男の人って・・・
原理主義者が暴れる予感・・・
使っても問題ないけど、コードが汚いわ To 9 でマジックナンバーつかってるなら TBL(10,10)って書けよ
丸投げだからパイパイのコードでもいいんじゃないか? っていうか、どうせならもっと汚く書いてほしかったなw マジックナンバー使いまくり 一文字変数使いまくり コメントなし コードを書いた本人も首をかしげるようなコード
ループの内側にDimって置けたっけ?
置けるけど意図した動きをしない Dim I As Integer For I = 1 To 10 Dim J As Integer J = I Next Debug.Print I, J ' ここでJ がしっかり参照できる。
マジックナンバーとかいうのって新人君だけだよね
499 :
デフォルトの名無しさん :2013/04/19(金) 22:02:07.21
>>488 Q2の比較ループ通る回数が無駄に多い気がする
>>488 日曜日、金曜日、土曜日を態々Constステートメントで書いてるけど
VB自体にvbSunday、vbFriday、vbSaturdayとか用意されてるからせめて使おうよ。
501 :
桃白白 :2013/04/19(金) 22:25:57.40
>>500 桃白白それには賛同しないわ。
その定数はVBの日付関数呼ぶときに使われるやつっしょ。
今回のプログラムがVBの日付関数と連関するものだったら
同じ定数使うのがいいと思うけど、別にそういう前提もないわけだから
VBの日付関数と今回のプログラムがまったく連関しない可能性を示唆することの
できる桃白白のコードの方が優れているよ。
この人一人称が自分のHNなんだ アイドルかよw 気色悪っ
504 :
鶴仙人 :2013/04/19(金) 23:22:12.25
さすがにそのHNはないわ
>>456 あのさあ・・・・不連続って何?頭おかしいの?
506 :
499 :2013/04/20(土) 08:01:34.42
回らない頭でコードみるよりは早起きしようとおもったら今起きた。 バブルソートっぽいけど比較回数がn(n-1)回になるのってどうなのさ?>たおぱいちゃん
508 :
桃白白 :2013/04/20(土) 12:14:05.08
>>506 桃白白としましては手続き上なんら問題はなく適切なバブルソーティングが行われるものとそのように認識しております。
509 :
500 :2013/04/20(土) 15:59:51.96
>>501 MSDNを見ると確かに「日付関連の関数を呼び出すときに使用する」と書いてある。
http://msdn.microsoft.com/ja-jp/library/microsoft.visualbasic.constants.vbsunday (v=vs.95).aspx
でも、これ以外の場合は使うなとは書いてない。
日付に関する処理で曜日を数値で扱う場合はこれをそのまま使ったほうがいいと思うけど。
日付関連の関数に使うんだったら、日付に関する関数も同じ値を使っておかないとかなり面倒なことが起きると思う。
パイパンの話からするとこんな感じになるのかな。
・日付関連の関数の場合はVBで用意されているの値を使う。
・日付関連の関数でない場合はVBで用意されている値とは別の定義、別の値を使う。
→VBで用意されている値と同じ値にするのであればあえて定義する意味がない。
別定義をすることで日付関連の関数でないことを示唆するというのは理解できる。
ただ、日付関連の関数でないことを示唆するのであれば、VBで用意されている値と全く同じ値にしてはいけない。
同じ値にすると日付関連の関数と整合性が取れてしまって、日付関連の関数も扱えてしまう。
なので
>>488 のコードはVBで用意されている値と同じ値になっているので
「別定義をすることで日付関連の関数でないことを示唆する」というのは意味不明。
こんな意味の分からない定義の切り分けをやったら曜日の定数の種類がいくつも出てきて訳が分からなくなると思う。
せっかくVBで用意してくれているのであるのなら、それをそのまま使っておいたほうが無難。
>>509 そんな必死になることかよ。
別にこの程度自分で定義したっていいだろうが。
必死とかガキみたいなこと言うんじゃないの。 特に理由がない限りシステムやライブラリが用意したものを使うのは当たり前のこと。
>>509 >でも、これ以外の場合は使うなとは書いてない。
原則としてそういう場合は使っちゃいけないと考えるのが正しい
まぁこういうのでバージョンアップ時等にエラーになってもMSのせいで通っちゃうけどね
定数を再定義したのは自分の管理下におくというのが趣旨なのでいくつもという事態にはならんよ
で、金曜+1=土曜が仕様として保証されたと
でもそんなのどっちでもいいよ
>>510 だめ。
楽しようとしてないし、バグの元。
>>512 なんか頭悪い意見だね。
それが曜日の値である限り、その値を使ってライブラリ(VBの場合は言語と一体だけれども)
の関数を呼び出す可能性を想定しない方がおかしい。
>>512 バージョンアップで使えなくなるというのなら、推奨しないと思うけど。
定義はそのままで値が変更される程度なら問題ないだろうし、定義自体なくなるのであれば
できるだけ使わないようにという旨の文言がmsdnに書かれると思う。
>定数を再定義したのは自分の管理下におくというのが趣旨なのでいくつもという事態にはならんよ
そんなの
>>488 に全くコメントされてないし本人しかわからないこと。
いい加減独りよがりのコードはやめたほうがいいよ、パイパンw
仕様の問題をコードの再利用と勘違いしているな
>>509
>>515 >定義はそのままで値が変更される程度なら
問題あるから再定義の必要があると言ってる
タオパイのコードは金曜+1=土曜という定数間の関係を前提にしているがMSDNにそんな事書いてない
518 :
桃白白 :2013/04/20(土) 16:59:34.76
>>509 わけがわからなくなることはないだろ。桃白白の関数を使用するときは
桃白白の定数を使ってください。VBの関数を使用するときはVBの定数を
使ってください。以上。
>>515 独善という意味ではどっこいどっこいでしょ。
VBの日付関数と整合性がとれなければいけないということが
質問の前提として書かれているわけじゃないし、その辺を想像で補って
VBの定数を使用するべきだって言ってんだから、そっちの考えが勇み足である
可能性もじゅうぶんにあるよ。
519 :
デフォルトの名無しさん :2013/04/20(土) 17:02:16.23
vbSunday~vbSaturdayを使うと dayIndex = dayIndex + 1 が Select Case dayIndex Case VbDayOfWeek.vbSunday dayIndex = VbDayOfWeek.vbMonday Case VbDayOfWeek.vbMonday dayIndex = VbDayOfWeek.vbTuesday (以下略) しないとだめなのかよ。こりゃめんどくさい。
>>514 自分の気に入らないコードがあるからってむきになるなよ。
お前の意見はもうわかったから。
パイパンが必死になってきましたw
523 :
517 :2013/04/20(土) 17:27:44.79
>>519 そういう事
面倒だけど必要な手間
今回タオパイがその関数使ってたら標準定数使えや派だった
定数使うと、succ(土曜日)のときにラウンドさせる必要があるのか、succ(日曜日)のときにラウンドさせるのか、結局その定数の値を調べないとわからない。
Trueが-1でFalseが0だからTrue+1はFalseだよねとか言われてる違和感。 定義済み定数を使うなら、原則としては+1とかしちゃいけないよね。
(ライブラリによって)定義済みかどうかは関係がない。 列挙値の値に依存するようなコードを平気で書くようではプログラマ失格。
教条主義的だなー
528 :
デフォルトの名無しさん :2013/04/20(土) 18:53:20.23
自前の定数でも定数間の関係が崩れたら動かなくなるのって よくないんだろうなっていうとさすがに教条主義か
自分で定義するなら崩れないように定義しとけば良いだけで 自分で関係のある定数を定義したのにそれ崩すってことは、自分で動かなくしてることと同意なんだが
>>529 それが典型的なダメグラマーの発想。
その発想の問題点は、そういう約束事をプログラマは忘れないはずだという前提に立っていること。
VB6の入門者向けのおすすめ書籍を教えて下さい
7にVB6のLearning Edition入れたのだがMCIコントロールやWinsockコントロールが何故か使えた 95やXPに入れてたときはWinsockコントロールとか使えなかったのに・・・なじぇ? WMPが糞だから自前でプレーヤー作ろうと思ってひとまずMCIコントロールを使おうと配置したんだが いまいち使い方が分からなくて調べたら、MCIコントロールはProfessional Edition以上じゃないと使えないとか書いてあって 試しに使えなかったはずのWinsockコントロールも配置してみたら普通に使えた 7に入れてからなんか挙動が変だったが、やっぱマズかったのかな、7に直接VB6を入れたのは・・・ コンポーネント追加で1回目は必ずシステムエラー出るし Common Controlsなんか何故かアイコンが2つずつになったし
チラシの裏にでも書いてろ
>>485 はワーク変数すら指定してくるくらいだから
勝手にループ用の変数とか自前定数を使ったらまずいんじゃないの?
つまり先生は
TBL(1, 6) = 1
TBL(1, 7) = 2
TBL(2, 1) = 3
...
みたいな直書きしろっていう課題だったんじゃ
よく思うんだけど先生もココ見るんじゃ
>>534 じゃあ問2は変数一つでソートするプログラム作れって問題なのか
解ける気しねえな
つかそれだけワーク変数指定してるし、それが何のワークなのかは明示してないし
はしょってるだけでカリキュラムの流れがあるんじゃないかと思うんだが
>>485 できたよ~
'Answer 1
Dim TBL(6, 7), i
For i = 1 To 31
TBL((i + 4) \ 7 + 1, (i + 4) Mod 7 + 1) = i
Next
'Answer 2
Dim TBL2(4), WO1, i
TBL2(0) = 8: TBL2(1) = 90: TBL2(2) = 20: TBL2(3) = 12: TBL2(4) = 2
For i = 0 To 24
If TBL2(i \ 5) < TBL2(i Mod 5) Then WO1 = TBL2(i \ 5): TBL2(i \ 5) = TBL2(i Mod 5): TBL2(i Mod 5) = WO1
Next
'Answer 3
Dim TBL(10, 10), i
For i = 0 To 80
TBL(i \ 9 + 1, i Mod 9 + 1) = (i \ 9 + 1) * (i Mod 9 + 1)
TBL(i \ 9 + 1, 10) = TBL(i \ 9 + 1, 10) + TBL(i \ 9 + 1, i Mod 9 + 1)
TBL(10, i \ 9 + 1) = TBL(i \ 9 + 1, 10)
Next
使用メモリが最小になるコード と 処理速度が最速になるコード の 2種類はよ
255未満の正数だから型を全部Byteにすれば小さくなるんじゃね
>>537 0オリジンと1オリジンが混ざってて気持ち悪い。
オリジン?
弁当
>>532 普通に7に入れて開発してるし問題は無いよ
最初がエラーになるのはUACのせい
そこでレジストリやらシステムファイルがシャドウコピーされて2回めからはエラーにならないというオチ
7は全てがユーザー単位で分けられてる真のマルチユーザー環境だからそういう動作になる
まあ、故に古いCOMなんかが意図しない動作になるんだけども
あと動作が不安定で心配ってんなら互換モード使っとき
これは95からVISTAまでのそれぞれのAPIと7の対応表を内部で持ってて
自動的に変換してくれるって機能だからそれなりに動くようになるよ
当然オーバーヘッドは有るけど、今時のスペックなら気になる事は無い
ライセンス制約突破したってレスじゃないの?
ライセンスと言えば、トランジスタ技術の記事によくMSCommをEXCELのVBAのIDEから 使う方法が載ってたりしたが、あれどう考えてもアウトだよなあ。
>>546 個人的に使うならアウトのはずないだろ
アホかよ?
0オリジンはインド人が発明したアルヨ
>>547 どんな俺様理論だよ。
VBのEULAにはそんなこと書いてない。
バレなきゃ問題ないって意味?
>>550 日本国著作権法 ○
VBのEULA ○
2chのライセンス馬鹿 ×
あえてExcelを選択してる理由を考えれば当然のはずだが一応補足しておくと、
>>546 で言ってる記事はもちろんVB6の開発環境を持ってない人向けのもの。
ついでに言えば、仮にVB6の開発環境を持っていても直でVB6に付属のコンポーネントを
VB6以外の開発環境で使うのは厳密に言えばアウトのはず。
ただこれも例外があって、少なくともVS2003の時代にはVS2003で使ってもいいですよと
EULAか何かに書いてあった。
技術情報としての記事にEULAを引き合いに出して講釈をはじめたアホがひとり
554 :
デフォルトの名無しさん :2013/04/22(月) 22:27:34.35
何でも叩きたい年頃なんでしょ?
正義の味方にでもなったつもり 月光仮面ライセンス参上! てか?
557 :
デフォルトの名無しさん :2013/04/22(月) 22:44:51.13
今からおぼえるならC#のほうがいいですか?
言語を覚える?マジか? いまだにリファレンスを見ないで書ける言語は一つもない VB6なんて特にそう ヘルプとインターネットがあってはじめて使える言語だわ C言語の時代はそんなことが無かったのだけれども 標準ライブラリの仕様、引数の順序まで覚えていた 今の言語は情報量が多すぎて覚える気がおこらない
ライセンス云々と書いてる人は単につぶやき程度で、こうしろとかああしろとか強制してないのに なにこのライセンス云々の内容を叩くアホはw
叩かれたと思うのは本人だけでそれ以外の人はなんとも思っていない 自己紹介乙
561 :
デフォルトの名無しさん :2013/04/22(月) 22:50:13.63
>>558 よかった。それが普通だよな。
ネット環境が統合開発環境の補助機能がないとVBなんて使える気がしない。
>>563 中には魔界の仮面なんとか氏のように、生き字引のような人がいるけどな
N88あたりの時代は命令数が少ないとはいえ入力支援も無いし全部覚えるしかなかったな
VBにもPEEKやPOKEがあるの?
READ D$ DATA "ABCDEFG"
1010 COLOR 5 1020 PRINT "HELLO WORLD" 1030 END
100 DIM A$, B 110 A$ = "HOGEHOGE" 120 GOSUB 200 130 A$ = "UNKO" 140 GOSUB 200 150 B = 256 160 A$ = STR(B) 170 GOSUB 200 180 END 190 REM SUB 200 PRINT A$ 210 RETURN
570 :
デフォルトの名無しさん :2013/04/23(火) 14:00:30.12
1025 CLS
100 DIM I, J 110 SCREEN 3 120 CLS 2 130 FOR I=0 TO 100:FOR J=0 TO 100 140 PSET(J,I) 150 NEXT J: NEXT I 160 LOCATE 5, 6: PRINT "BASIC"
行番号がない言語はBASIC名乗っちゃいかんな
そういえば、行番号つけられるんだっけな。VB6。 つけたことないけど。
Quick BASIC..
FORTRANを忘れないであげてください!
576 :
デフォルトの名無しさん :2013/04/23(火) 18:07:46.01
VB6でgzipファイル扱おうと思うとtar使うとかがいいの?
そういやXPや7はOSが標準でzipを扱えたと思ったけどVB6からその機能使えるんかな
>>578 Shell32.dllを使って一度作ってみたことあるけどイマイチ動作が不安定だった覚えがある。
「vb6 zip 圧縮」でググると結構ヒットするけど。
㌧
場合によってはzipfldr.dllの登録が必要だったり 空のzipファイルを自前で用意せにゃならんかったり shell32から使うのはあまりスマートじゃない感じかね
レジストリのzipのShellNewを見てみたらこちらもDataの値に空zipのバイナリが直で書かれててワロタ
>>576 LightSwitch が紹介されてるけどあれ機能が少ない上に有料でしょ?
2chにスレもない。
プロの世界は知りませんが、個人的にはへろぱ氏の偽UnZip32.dllをとても 便利に使わせてもらってます。
dllうぜえ厨だけど、VBSでのZIPのコードがどこかにあったキガス。 名前空間とかいうのをうんぬんだったっけな。
ZIPのコードというか、ZIPの圧縮、解凍のコード。 変数名がややわかりにくかった記憶がある。改修してこぴへよろ。
VB6の標準のDBコントロール使うのとSQLite使うのとどっちのほうがパフォーマンスいいかな
SQLiteはUTF-8使えないと無理
>>483 俺とっくにマじゃないけど
.netは3.5を入れればXP~Windows8まで対応できるから十分じゃないかな。
しかも、シェルスクリプトである PowerShell から .net を利用できるからバッチのために別の言語を覚える必要とかもない。
Win7, 8 にはそれぞれ .net 4と 4.5 が入ってるけど .net 3.5 と共存できるんだよっ!!
XPといってもいまどきのマシンなら .net入れても余裕で動くし。
メモリが少ない昔のマシンで動かすときとか
仮想マシン大量に使うときはちょっと重くなるだろうけど・・・
動くけどあからさまに遅くなるしな いや正確には.NET向けの仕様になってないから .NETの悪いとこばかり目立つ感じになっちゃうというか Sub Main()からフォームをshowするだけだとそのまま終わっちゃうから Application.Runとかに変えてーそうするとと後続処理が流れないから Form.Loadとかに処理移してーそしたらForm.Loadより先にText.Changedが動いてて ロード完了フラグ作って制御してーあとフォームをcloseしただけじゃ初期化されないから めんどいからDisposeしたら再ロード遅くなってしょうがないからコントロール初期化処理入れてー みたいな、もう一から設計やり直させてくれよ的な
それ以上の愚痴はVB.NETスレでやってくれ。 VB6の場合、Sub Mainは非表示のトップレベルウインドウで動いてるから、 フォームから動かしているのと変わらない。
へぇーありがとう それ長年気になってたヤツ まとめて解決だわ ThunderRT6Mainがいつも居る謎 MainでShowして抜けても終了しない謎
Win8のストアアプリ開発しようと思ってんだけど、テキストファイルの読み込み が従来のVB.NETのようにそう簡単にはいかなくて本当困ってる・・・ 普通にテキストファイル内の文字を読み込んでボタンクリックしたらテキストブ ロックにその内容が表示されればいいだけなんだけどね・・・ 何かいい方法ないですかね?
596 :
デフォルトの名無しさん :2013/05/03(金) 06:05:34.17
598 :
デフォルトの名無しさん :2013/05/03(金) 19:50:21.08
VB6のクリップボードオブジェクトって テキストと画像しか扱えないのな プラットフォームSDKのクリップボードのAPIを見ると色々な形式に対応してるようだけど VB6だけじゃだめなのか
API使わないと自由な形式にはできない
600 :
デフォルトの名無しさん :2013/05/08(水) 04:47:00.55
テキストと画像で充分でしょ クリップボードでバイナリ扱おうなんて危険
なぜVBは黒歴史のような扱いを受けるのでしょうか? それにもかかわらず今でも廃れた感がないのは何故?
誰が誰に黒歴史という扱いしているんですか? 廃れた感?あなたがそう感じてたとして、それが何?
VB6先輩こえー
黒歴史かどうかはしらんが、廃れた感は廃れ切ったから感じないだけだろ
ByRefよりByValのほうが速かった件
ByRef は基本的に速くするために使うものではない希ガス
Property Get/Let で定義したプロパティって ByRef渡しで値変更はできないのな 'Class1.cls Dim n As Integer Public Property Get Value() As Integer Value = n End Property Public Property Let Value(newValue As Integer) n = newValue End Property 'Form1.frm Sub Hoge(ByRef n As Integer) Debug.Print n n = n + 1 Debug.Print n End Sub Private Sub Command1_Click() Dim c As New Class1 Debug.Print "Before "; c.Value Call Hoge(c.Value) Debug.Print "After "; c.Value End Sub
希ガスってなつかしい
610 :
桃白白 :2013/05/09(木) 01:32:20.47
>>607 VB.NETではできた。
コンパイラさんがこんなコードを生成してくだすってた。
コンパイラさんマジ感謝っす。
Dim s As String = Me.Value
Hoge(s)
Me.Value = s
IntegerじゃなくStringだと!?
出来るんだよ、そう.NETではね
VB2010の無料ので試してみたけど、全然書式違うのな驚いた。ヘルプの小窓が教えてくれるし助かったというか 'Class1.vb Public Class Class1 Dim n As Integer Public Property Value() As Integer Get Value = n End Get Set(value As Integer) n = value End Set End Property End Class 'Form1.vb Public Class Form1 Public Sub Hoge(ByRef n As Integer) Debug.Print(n) n = n + 1 Debug.Print(n) End Sub Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click Dim c As New Class1 Debug.Print("before " & c.Value) Call Hoge(c.Value) Debug.Print("after " & c.Value) End Sub End Class
なんかJavaみたいなコードになって気持ち悪い VB.NETに移行したくないお
VB.NET自体C#があれば要らない言語なんだよな
{ }の括弧に比べれば End Subとか何の終端なのか分かりやすいのがVBの利点ってとこか まぁ } の後にコメントで何の終端かを書けばすむだけではあるが
VB6のほうが見かけシンプルだし 移行で覚えなきゃならんこと多そうだし 当分はVB6を使い続けるは
618 :
桃白白 :2013/05/09(木) 02:09:20.78
>>616 わかるー、桃白白それ超わかるー、ネストが4つくらいになって上の
とこが画面に表示されないほど上にあるときVB超わかりやすい
>>615 DimもAsもない言語なんてくそくらえだお
>Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click ここなんか全く理解が及ばない .NET移行なんて無理難題すぎ
>DimもAsもない言語なんてくそくらえだお ( ゚Д゚)ポカーン
VB.NETはDimよりVarで宣言するのが主流なんだっけか
ボタンクリックごときに変数をよこしてくるとは大層なクリックだことで
×変数 ○引数 寝ぼけちん
ボタンクリック如きで引数のないdelegateを定義する方が大層だぞ
Handles Button1.Click ←これをつけたプロシージャがクリックイベントを処理するプロシージャになってプロシージャ名はButton1_Clickじゃなくても何でもいいってことかな?
クリックに相当するWindowMessageが無いようだから マウスダウンとマウスアップが同じウィンドウだったらクリックイベント用のプロシージャを呼び出す仕様なのかな?>VB6
それはWin32API自体そうなってる
クリックしたボタンとクリック位置くらいは欲しいとは思ったことは何度もある
コマンドボタンは左クリックしか反応ない
630 :
デフォルトの名無しさん :2013/05/09(木) 10:53:01.41
まだ規制されてるんかな・・・
631 :
デフォルトの名無しさん :2013/05/09(木) 11:05:48.85
>>607 オブジェクトを引数にすればByRefなくてもプロシージャで呼び出し元の
プロパティをいじることができるんよな。
>>610 VB.NETのStringは参照型なので↑の指摘と事情は一緒だろう。
>>625 そうです。VB.NETはHandlesの記述が普段見るソース画面にあるから何のイベントか判別つくからね。
C#になるとdelegateってのだっけ?デザインのほうにHandlesに相当する記述が移動してるから
パッと見ではこのプロシージャが何のイベントなのかわかんなくなる。
>>631 .NETのStringは変更不可(イミュータブル)なオブジェクトだから
その指摘は当たらない
633 :
デフォルトの名無しさん :2013/05/09(木) 14:40:23.66
>>610 コンパイラがコードを生成するってどゆこと?
634 :
桃白白 :2013/05/09(木) 14:56:15.87
>>633 コンパイラさんがコードを生成するって意味だお。
Hoge(Me.Value)
と書くでしょ。それをビルドするの。そしたら
Dim i As Integer = Me.Value
Hoge(i)
Me.Value = i
みたいなコードをコンパイラさんが生成してくださるの。
コンパイラさんがコードを生成するって意味なの。
Sub PlusOne(ByRef v as Integer) v = v + 1 End Sub という参照渡しのサブルーチンのがあって 最初 x = 0 で Call PlusOne(x) や PlusOne x の場合xは1になるのだけど PlusOne(x) の場合0になる。これ結構バグのもとだった。
どういう理屈なんだい?
一番下のをCall付きで書くとこうなる Call PlusOne( (x) ) (x) で x のコピーが一時領域に作られるってわけさ
なーる しかし酷いな
>>635 それは参照渡しのファンクションで引数を変更されたくないときに使うテクニック
まあ、分かりにくいのでバグのもとなのは確か
あまり薦められたものではない
実行時にExcelやWordのように、フォントやそれに対応するフォントサイズを 選択するコンボボックスを表示させたいのですが。 実行時に選択可能なフォントやそのサイズを取得することはできますか? VB6の賢者の皆さんのお力をお貸しください。
あのさぁ せめて一回ググってから質問してくれる?
643 :
デフォルトの名無しさん :2013/05/12(日) 05:07:39.36
フォントを列挙するAPIがある
644 :
デフォルトの名無しさん :2013/05/12(日) 07:15:22.91
EnumFontFamilies()
>>641 失礼しました。
>>640 です。
参考にしたURL↓
Microsoft.VisualBasic.PowerPacks.Printing.Compatibility.VB6 Namespace ()
こちらのページの情報で、フォント名の一覧を取得することはできたのですが、
各々のフォントで利用可能なフォントサイズの一覧を取得する方法がわかりませんでした。
お力をお貸しください。
646 :
デフォルトの名無しさん :2013/05/12(日) 19:55:50.21
面倒くさいからサイズは10とか15とか好きに設定すればいいんじゃない? フォント名は存在しないのを指定するとエラーになるけど サイズは近いのを設定してくれるでしょ
647 :
デフォルトの名無しさん :2013/05/12(日) 22:02:55.04
コンポーネントのコモンダイアログコントロールのフォント選択ダイアログじゃダメなの?
648 :
デフォルトの名無しさん :2013/05/12(日) 22:27:13.41
Screen.FontCountとScreen.Fontsでフォント一覧が取得出来るんじゃないの?
>>645 ってかさ
>>641 の回答になってないじゃん。
ググってそのサイトしか見なかったのか?
>>647 のようなものが書かれているサイトもあるわけだし。
利用可能なフォントサイズなんてないじゃね? Excelとかのフォントサイズ一覧ってExcelがかってにでっちあげてる だけじゃね?
利用可能なフォントサイズってーのは無い ビットマップフォントとかは綺麗に表示されるサイズってのが有るけど 利用可能かどうかと言われれば拡大縮小で全てが利用可能な状態だからな アウトラインフォントとビットマップフォントでも変わるし あと印刷の話も出てくるとややこしくなるし フォントは突き詰めていくとエライ事になるから適当に妥協するのが吉
654 :
デフォルトの名無しさん :2013/05/14(火) 19:11:59.88
デフォルトでフォントサイズ11にしておく メニューに「字を小さく」「字を大きく」の二つだけ用意する Private Sub Font_Large() Dim org_size!, i% org_size! = Text1.Fontsize For i%=1 to 10 Text1.FontSize = org_size! + i% If Text1.FontSize <> org_size! Then exit For Next End Sub
まあ
>>640 もググったろうから解ったと思うが
フォントに対して利用可能サイズだのなんだのって話自体がナンセンス
字形データだからねあれ。どういう大きさで使うかは利用する側に委ねられている。
だからまあ
>>654 みたいのも有りだし
>>647 で済ますのも簡単で良いと思う
どうしても拘りたいならDPIとか解像度との兼ね合いから仕様を決めて頑張れ
657 :
デフォルトの名無しさん :2013/05/20(月) 19:29:10.08
シフト演算と符合なしlongの加減乗除 難易度高いな 再現したいアルゴリズムのために苦戦した
658 :
デフォルトの名無しさん :2013/05/20(月) 19:31:49.67
C言語ってオーバーフローでエラーでないのな VB6で同じアルゴリズム組むとオーバーフローのエラーで止まるの多いこと 移植って難しい
659 :
デフォルトの名無しさん :2013/05/20(月) 20:10:17.72
C言語はオーバーフローを想定し忘れたコードが思わぬ場所でやらかすバグを作りやすい雰囲気 VB6はオーバーフローの場所でエラーでるからデバッグはやりやすいのかな
660 :
デフォルトの名無しさん :2013/05/20(月) 20:12:33.99
つか言語仕様ありきのアルゴリズムって糞だな 移植性悪すぎ
661 :
デフォルトの名無しさん :2013/05/20(月) 20:15:06.40
算術左シフトなんて符合ビットを残すやつだってあるし
てか他の言語で書けるようなソフトなら そもそもCで書くなw
うぇ
664 :
デフォルトの名無しさん :2013/05/27(月) 20:46:36.11
URLがドメインのみって時点で ただの宣伝かブラクラ、イタズラの類だろうなw
広告てんこ盛りのまとめサイトっぽい何かだった。 見出しばっかりで特に何かがあるわけではなかった。
そもそもそれ7でも8でも言われてた事だしな どうせまた全世界のユーザー意見とやらに押されて折れる
素人がExcel VBAからスタンドアロン実行可能の魅力でVB6に流れるためにVB6ユーザーは増える一途。 VB6のサポートを終了するためにはまずVBAを廃止しなければだめだろうな。 あるいはVB6に変わる非.netフレームワーク型BASICを提供するとか。
いい加減に現実を見ろよ
671 :
デフォルトの名無しさん :2013/05/28(火) 09:57:26.56
VB6早くサポート終了しないかな? 社内の年寄プログラマがVB6知ってるってだけで存在価値をアピールしやがる 実際に保守案件が少なくないし、VBAも守備範囲というのがなぁ 基本Javaオンリー、C#ちょいの若者が先にリストラの対象になるのは納得いかない コボラーは70歳近くの爺さんでも金融部門で重宝されてる。 一行書くのに腕組みして10分かかる世界ってなんなの? バカじゃね?
金融はスピードより慎重さが求められる
673 :
デフォルトの名無しさん :2013/05/28(火) 10:48:38.16
即レスしてしまう脊髄反射な君には向かない事が判明した
時間間隔的にみて どっちが脊髄反射かっつーの
675 :
デフォルトの名無しさん :2013/05/28(火) 10:51:31.16
↑ お前なんか2分じゃんwww
↑↑↑↑↑ 貴様は2分切ってるだろうが!
677 :
デフォルトの名無しさん :2013/05/28(火) 11:09:16.12
↑↑↑↑↑↑↑↑↑↑ ∧_∧ ( ´∀`) <オマエモナー ( ) | | | (__)_)
ここまでおれの自演
679 :
デフォルトの名無しさん :2013/05/28(火) 11:23:14.28
運営乙
Very Baka
681 :
デフォルトの名無しさん :2013/05/28(火) 16:05:07.53
Otanko Nurse
682 :
デフォルトの名無しさん :2013/05/28(火) 22:15:39.16
いいね!
お金払う立場で考えりゃ同じ機能を実現できるなら圧倒的に安く済む方を選ぶだろ 動かないんじゃ選択肢無いけど当分大丈夫そうならもう後は金が全てさ 金が全てさ・・・
先日、VB6をいまだにインタプリタのみだと思い込んでるクライアントに遭遇して吹いた。
javascriptをjavaとか言っちゃう人だっているだろ 知らない人にとってはそんなもん
まあいまさらVB6のこと知っててもな
687 :
デフォルトの名無しさん :2013/05/29(水) 10:18:57.88
たぶんうちの会社くらいだと思うけど、.net開発よりVB6の保守案件の方が年間売り上げが多い。 さすがにVB6での新規はゼロだけど、機能拡張をそのままVB6で継続という案件は山ほどある。 最近の若年プログラマはVB6を知らないしやる気もない。VB6を知ってる人は中年層ばかり。 VB6が第二のコボルに見えてくるよ。
そんなこと自慢されてもなー
689 :
デフォルトの名無しさん :2013/05/29(水) 11:28:16.50
>>688 誰が何を自慢してるのかさっぱりわからないのだが・・・?
>>687 コボルの場合はWindowsOS以外にも活躍場所があるけど
VB6はもう使えるOSがなくなっていくから、ちゃんと終息に向かうと思うよ。
まあ他の言語への移行で苦しむ人たちは多そうだけどね。
VBはもう終わりにして新たな需要を喚起したほうが市場全体としてはいいのではないか
691 :
デフォルトの名無しさん :2013/05/29(水) 12:59:14.24
スケーリングモードにTwipsを使用していたりユーザー定義で独自のスケーリングを多様しているVB6アプリを見ると どうやってピクセル基準しかない処理系で同じことを実現すれば良いかわからなくなることがある。 結果、スケーリングクラスを自分で作ってオーバーライドする訳だけど。
692 :
デフォルトの名無しさん :2013/05/29(水) 13:27:23.73
>>689 VB6が使えるOSが無くなるって事は、裏を返せばMSの時代が終わるって事だよな?
まさかあのメトロ(モダーン)が主流になってストアアプリがデファクトスタンダードになると
本気で確信しているならあえて意見しないが。
>>690 そんな事誰でも思ってる。
.netの需要は限りなく大きい。しかし競争も激化している。
VB6保守はニッチ産業になってるって事だろ?
これに限らずやり手がいないという理由で重宝されてるおっさんは少なくない。
たとえばオフコン。そのおっさん以外誰もまったく分からない。
まあVB6なんて先のないおっさんがやっておけばいいよ
皮肉なことに、今後VB6プログラマの市場価値が 一段と上がるって事かな?
696 :
デフォルトの名無しさん :2013/05/29(水) 14:16:17.70
市場価値というかやれる人が少なくなってきているから重宝されてるってことだろ? Javaや.netでアプリ組めるプログラマは吐いて捨てるほどいるから存在価値が薄い。 かと言って、誰も今更VB6を習得しようなんて絶対思わないハズw
俺はVB6も.netもできるからどうでもいいや
VB6も.netもできても、肝心のプログラムをまともに組めないからどうでも良くはないだろw
なんで組めないって決め付けるんだよw これでもプログラミング歴25年だけど。
先端技術を追求するとはどういうことか オンリーワンを目指すと言うことではないのか だが実のところ、 振り返った先にこそオンリーワンの価値はあったのだ
>>699 25年もやってて長くやってればよしという考えがアレだなw
>>701 あ、25年より長いや。N-BASICからやってるから。
まあおまいらごときでは俺にはかなわんよw
>>699 なぜ自分の事を言われたと思ってしまうか理解に苦しむが
自覚してしまう何かがあったのなら謝る。ごめんw
まともに組めなくても25年もプログラマ続けられるのか、日本に生まれて良かったw
>>703 いやいや、この文章だと俺へのレスに取れるよ。
>VB6も.netもできても、肝心のプログラムをまともに組めないからどうでも良くはないだろw
VB6も.netもできても、肝心のプログラムをまともに組めない奴はどうでも良くはないだろがw
とかなら自分に言われたのではない可能性が高いが。
706 :
デフォルトの名無しさん :2013/05/29(水) 15:41:47.20
長くやってれば能力が高いとか奢ってる奴。必ず社内に一人はいる。 聡明で秀逸な人間なら1年で習得できる事を、馬鹿が何十年かけて到達して自慢とか滑稽だろ? まあ出来る奴は皆決まって寡黙であって、おまいらごときとか俺にはかなわんとか口を避けても言わない。 人間性に優れ何をやらせても卒なくこなす人材は共通して謙虚さをもっているものだ。
いやぁ。でもVB6に固執してる奴よりはできると思うぜw
>>705 「まともに組めない」 人をお前自身に結びつけた根拠を知りたい。
「VB6に固執してる奴」 だれそれ?
>>708 肝心のプログラムをまともに組めないならどうでも
ならわかる。
肝心のプログラムをまともに組めないからどうでも
だと結び付けても不思議じゃないだろ
711 :
デフォルトの名無しさん :2013/05/29(水) 15:47:04.01
本当に古参のおっさんならN88-BASICと言うと思う 絶対にN88という文字に思い入れがあるはずだ
>>711 それはPC-8801だろ?
俺はPC-8001からやってるんだけどw
714 :
デフォルトの名無しさん :2013/05/29(水) 15:53:29.13
ひさしぶりにVB6スレが盛り上がってるからうれしいなっと覗きにきたら 煽り合戦かよorz
715 :
デフォルトの名無しさん :2013/05/29(水) 15:53:32.25
>>710 不思議じゃないが、言葉尻をとらえてそこまで顔真っ赤にして主張しなくてもいいのでは?
まあご自由にどうぞ^^
>>712 その年齢で.netに適応してるというのはある意味脱帽だな
うちの親父と同年代と思うが、パソコン教室に通い出した親父とは偉い違いだ
716 :
デフォルトの名無しさん :2013/05/29(水) 15:55:56.34
>>715 >その年齢で.netに適応してるというのはある意味脱帽だな
たぶん40前後だろうけど結構普通にいると思う
PC-8001からだと50代、下手すると60代に突入するだろう。 あの当時幼稚園からプログラムを組んでた天才はいなかった。 パソコン自体が高価だったしねぇ。 俺はLISA買ったけどまだ捨てずに思ってる。
718 :
デフォルトの名無しさん :2013/05/29(水) 16:01:09.40
>>712 は「仕事で」PC-8001を使ってた、とは言ってないからなぁ
719 :
デフォルトの名無しさん :2013/05/29(水) 16:03:16.92
おっさんで盛り上がるVB6スレwww PC8001 1979年発売 発売当時10歳とすれば現在44歳だね。
720 :
デフォルトの名無しさん :2013/05/29(水) 16:03:46.03
まあ、「PC-8001はエミュレータでした」とか言い訳はいくらでもできるし そんなところを突っついても不毛の論争を呼ぶだけだろ? おっさんがひとり紛れ込んだところで何か害があるわけでもなし
なぜ「当時10歳」なんだか?wwww 昔は今と違って小中学生がプログラミングしていた時代じゃないよ 高校生も手が届かなくて大学生あたりがギリ 社会人になるとMACを数百万円で買って自慢するというブームだった
新し物好きの親が買って、そして数年使って 子どもにやるんだよ。そうすると当時10歳+数年が加算される。
723 :
デフォルトの名無しさん :2013/05/29(水) 16:10:11.02
そう?親の買ったPCでこっそり数当てゲーム作って遊んだものだがなぁ
今にインベーダーゲーム作ったのは俺でタイトーに売って2億儲けたとか 妄想ごっこが始まりそうで嫌だw
俺はインベーダーだ
726 :
デフォルトの名無しさん :2013/05/29(水) 16:36:59.68
VB5やVB6が全盛だったころ、VBができる奴って羨望のまなざしで見られていたもんだ。 何せC言語が生産性に乏しいアプリ開発に適さない言語としてCプログラマの評価は地に落ちた。 C++はMFCを使っても冗長な言語であったし、マルチスレッドが必須になるような状況でないと出番が無かった。 あれから20年で世の中様変わりして、今やiOSやAndroidのアプリが作れなきゃお払い箱。 昨今のプログラマに一番要求されるのは、時代の変化に柔軟に対応できる適応能力ということだな。
若者たちよ。新しい言語についていけないからといって ニッチな需要がるとか、案件が.netより多いとか後ろばかり見ているような おっさんになるなよ。 まあ事実を言っているまでとか言うんだろうがw
729 :
デフォルトの名無しさん :2013/05/29(水) 16:41:07.05
基本的に言語について行けない奴なんていないと思う 仕事でヤレと言わらたらその中で言語を習得しながら仕事をこなすのがプロ I/Oとかの雑誌の数当てゲームのバイナリコードを親のパソコンに打ち込んでRunさせるのとは訳が違う
>>728 はおっさんの首切りチャンスをうかがう人事担当者
VB6の古い案件はおっさんに押しつけて 若者たちは新しい世界を築いてほしいなり。
>>729 おっさんになると政治力がついてヤレといわれても
いろいろ理由をつけて逃げることが可能になってくる。
ニッチな需要や案件が多いと言い出すのもその一種だろう。
若者たちよ。自ら進んでやる人間になるんだぞ。
若者向けのメッセージを残すのはいいんだが 若者がこのスレを見る機会あるのかしら?
734 :
デフォルトの名無しさん :2013/05/29(水) 16:50:11.61
>>731 うちの会社は水道などの公共事業の受託計算の収益がメインで
営業努力による収益は全体の2%未満。
そしてその受託計算がコボルで書かれていて社内でメンテできるのが
62歳のじいさんと58歳のおっさんのゴールデンコンビのみという
危機管理能力のないこんな会社でも、もう15年も勤めて
今の年収は決して多くはないが800万円の大台に乗ったところでし。
COBOLをカタカナで書く奴初めて見たw
>>735 逆でしょ?今時コボルを英字で書く奴はリストラの富士通社員くらいじゃないかい?
>>721 > なぜ「当時10歳」なんだか?wwww
> 昔は今と違って小中学生がプログラミングしていた時代じゃないよ
いや、結構プログラミングしてる奴いたよ。
当時はマイコンショップで自由にマイコンに触れる所多く、中学生もいたよ。
中学生の俺がPC-1211を1980年に買って貰ったとき、既にプログラミングの知識はあったよ。
俺の初めてのマイコンは、VIC-1001で(69,800)、普通のデパートで買えた。1981年だったと思う。
その頃、周りに結構プログラミング仲間が居た記憶がある。
738 :
デフォルトの名無しさん :2013/05/29(水) 16:55:44.18
>>736 ★★★ OBJECT COBOL ★★★
w
せっかく若者に向けていいこと言ってるのに おっさんしかいないスレだった。
>>737 それってプログラミングじゃなくて
I/Oとか雑誌に掲載されたコードを打ち込んで走らせてただけじゃない?
まあ少しは改造してたりしたとしても。
本当に出来る奴は自分でマイコンキットを組み立ててたよ。
TTLのICやLSIなどを半田付けしてね。
>>734 そういう会社が今後どうするのがすごく気になる。
あくまでCOBOLで延命をはかるのか
言語の切り替えをはかるのか
どちらにしても前途多難じゃね?
>>737 俺もやった。電気屋でデモ走らせてるPCを止めて自作のプログラム走らせるの楽しかった。
あのころはPCの用途っていうとゲーム・ビジネス・プログラミングだった。
742 :
デフォルトの名無しさん :2013/05/29(水) 17:02:09.66
今のプログラマーにはゲートとかフィリップフロップとか シフトレジスタとか言ってもチンプンカンプンだろうけど 昔のプログラマはハードロジックを組める人が多かった。
昔はネットもCなどという半端な開発ツールもない代わりに BASICのコマンドをひと通り覚えればそれなりに遊べた
>そういう会社が今後どうするのがすごく気になる。 むしろ歴史の浅い最新の技術でソフト開発をしてる会社の方がリスクが大きいと思う。 公共事業は入札がつきものだし役人との癒着で利権が確保できるけど 自力で競争しなければならない企業は体力勝負だからねぇ。 まあ10年以内に大抵のソフト会社が倒産か解散してるけどね。
62歳はじいさんで58歳はおっさんなのか 60歳がラインなのか
>>740 > それってプログラミングじゃなくて
> I/Oとか雑誌に掲載されたコードを打ち込んで走らせてただけじゃない?
そういう奴もいたけど、プログラミングできる奴も結構いたよ。
Microsoftが出してたBASICの本で勉強したものさ。
マシン語の勉強もI/Oが出してた本で勉強したよ。
俺が高校に入ったときには、既にマイコン部が存在していた。
> 本当に出来る奴は自分でマイコンキットを組み立ててたよ。
> TTLのICやLSIなどを半田付けしてね。
TK-80を作ったという奴はいたが、それでできることは限られてたしねぇ。
747 :
デフォルトの名無しさん :2013/05/29(水) 17:11:54.94
>>745 20歳でも45歳くらいに見える老け顔っているから
たぶん見た目でそう見えるのではないの?
女性に対しては共通して「お姉さま」と言っておけば間違いないw
そもそも80年代前半のべーマガの投稿者って、中高生も結構いた気がするが。
何かハードに近い部分ができることがプログラミング上級者のように 錯覚しがちだけどそうではないということもおっさんは知らなければならない。
>>746 俺はSHARP派だったんでMZ-8000というクリーンコンピュータ
即ちROMにBASICが入っていた当時の常識をくつがえし
今では当たり前のBIOSとブートだけをROMに入れて言語はRAMにロードするものだった
CPUはザイログ社のZ80をSHARPがセカンドソースで作ったLSIだった。
そのおかげで今プログラマーという職についているが
いつも窮地に追い込まれるとそのころを思い出して今の恵まれた環境と比較し
頑張る勇気をもらってる。
751 :
デフォルトの名無しさん :2013/05/29(水) 17:20:22.43
>そもそも80年代前半のべーマガの投稿者って、中高生も結構いた気がするが。 当時24歳で、この歳でBASICマガジンに投稿するのが恥ずかしくて中学生と偽って投稿したことが3回あるw
俺が当時尊敬してたのはバグ太郎氏
俺が高校生だった頃、FM-7とかPC-6001とかX1とか持ってた奴いたよ。80年代前半の話。
じじいばっかじゃんw
なんだよこのたまにある爆発力は。
756 :
デフォルトの名無しさん :2013/05/29(水) 17:26:21.48
お前らがBASICで遊んでいるころ、俺はデジタルリサーチ社のCP/MでWhite Smith CでC言語を勉強していた。 IDEなんてものはボーランド社がTurbo Cを出すまで無かったし エディタだってラインエディタが当たり前だった。 おまえら、ラインエディタって分かる?まあLinuxやってる奴は今でもviとか使うかもなw
今や中学生がRubyのコミッタになる時代だからね。 いい時代だよ。
おっさんどもは昔のPC板へ帰りやがれwww
ラインエディタぐらいで「知ってる?」なんて問いが出てくるのもいささか不思議だ。 ふと、ブートローダとかパンチカードとかな時代まで戻るとスレ違…って過去のBASICの時点でスレ違か さあ… 昔PCへ帰ろう…
エドリンだろ?そんなの常識じゃね?
CP/MならWord StarかWord Masterだろ? エドリン?それはMS/DOSじゃん。しかも純粋なラインエディタとしては意味違うし。
だいたいCコンパイラなんてのはフロッピーディスクが 使えるようになってから出てきたもんだろ。 新参すぎてワロえない。 俺らマイコン世代は起動=BASICインタプリタの起動だった。 でハンドアセンブルしたマシン語をBASICから呼ぶのが定石。 C言語とかぬるま湯につかってんじゃねーよw
764 :
デフォルトの名無しさん :2013/05/29(水) 18:03:25.30
EDLINは「ライン・エディター」ではなく「ライン・エディッタ」 これ常識だからw
>>763 カセットテープに記録していたのがそんなに自慢か?
ビルゲイツが大学生の時代は紙テープだったがなw
766 :
デフォルトの名無しさん :2013/05/29(水) 18:42:38.85
そんなこと知ってるわよ 馬鹿にしないでよね
スレ伸びて嬉しいけど昔話はやめて欲しい
Very Boke
このスレが伸びて嬉しいなんて言ってるようではダメだ こんなスレはもう質問と回答だけになるべきだよ
穴明けプログラみんぐとか楽しそうだよね
771 :
デフォルトの名無しさん :2013/05/29(水) 19:05:45.82
お前ら紙テープとか言ってるが、紙カードを知らないだろ?1枚の紙にコード一行分のパンチ穴をあける方式。 たとえばセミコロン1つでも1枚のカードを使ってしまうのである。 この紙カードが空気が乾燥していると静電気でくっついてしまうので、コピー用紙のように端をもってバラバラと捌く必要がある。 照明を消して真っ暗にして捌くと青白い火花がバチバチと放電して見ていて楽しい。 ある時、会社見学の御一行様が俺の所にきて説明を受けていたので、これ見よがしに紙カードを捌いてみせた。 バリバリッという小気味よい音と見事な捌きに見学者から歓声が沸いた。 そこまでは良かったが、調子に乗りすぎて何度も捌いていたら、手元が狂って紙カードがあたり一面に散乱してしまった。 その回収に見学者も加わって、まあ恥ずかしいのなんの。そしてある見学者から一言。 「いいものを見せてもらいました」 だとさ。
>>721 まあまあいた。
俺が小学生の頃、PC-6001が「パピコン」という愛称で発売されて、
実際に持ってた友達がいた。
で、コツコツ組んでた。
中学生高校生になると、シャープX-1だとか各社から
相次いで発売されて、ちょくちょくPCで遊んでる奴は増えた。
しかし昔はパソコン高かったよな。 i386DXが搭載で40万円とかi286でも30万円台だった。 まさにNEC全盛のボッタクリ黄金時代だったな。 そういえばi386DXにi484DXを載せ替えるゲタ付きCPUなんていうのが売られていた。 そこまでしてwww と思うかもしれないが、当時はそこまでするほどパソコンが高価だったのよ。 今やNECのPCなんて誰も見向きもしない。時代は変わったもんだ。
スレチ消えて! 昔話は1度聞けば満足だから 飲み会での興味あるフリとかも演技だからな
荒らしという認識なく昔話をされて非常に迷惑
777 :
デフォルトの名無しさん :2013/05/29(水) 21:53:48.75
スレ的にはおっさんを大切にしないと成り立たない訳だが? 若くしてVB6やってる奴がいたらお目にかかりたいものだ。
スレ的にはおっさんを大切にしないと成り立たないから荒らしぐらい大目にみろと? そもそも成り立ってたの?このスレ
779 :
デフォルトの名無しさん :2013/05/29(水) 22:54:28.02
スレが盛り上がったと見ると話題を否定して荒らし認定するやからが現れるよな 自分が会話に混ざれなかったからってみんな荒らしだと決め付ける お前の方が荒らしだろ スレそのものも否定しだしたよ なにしに来てんだろうね
780 :
デフォルトの名無しさん :2013/05/29(水) 23:15:08.48
反論できず人格攻撃 結局それぐらいいいだろって言いたいんだろうがスレチなのよ
782 :
デフォルトの名無しさん :2013/05/29(水) 23:31:26.17
>>781 そりゃお前だ、出てけよ
会話に参加できなかったひ弱なやつがスレチだ荒らしだと一人で騒いでるだけ
だから荒らしはお前だって言ってんだよ、場違いはお前だって言ってんだよ、出てけよ
783 :
デフォルトの名無しさん :2013/05/29(水) 23:33:06.91
人の会話を平気で破壊する
>>781 のようなやつに限って自分が否定されたら
全力でファビョるからな、生粋の荒らしですわ
>>782 スレタイの内容無視した書き込みを延々やってもいいってことね。了解。
過疎板のレガシー言語スレなんだから、多少の脱線は許すくらいの感じでいいじゃん
786 :
デフォルトの名無しさん :2013/05/29(水) 23:43:48.97
>>784 それを判断する立場にお前はない、だから黙れ、そして出てけといっている、二度と来るな
>>785 多少の脱線って?多少どころか脱線しまくりだろ。
これを多少のレベルということなら、延々スレタイの内容を無視した書き込みしても大して変わらないと思うけど。
実際、世の中は中小企業の方が圧倒的多数な訳で システムと呼ぶには申し訳ないような細々したアプリ開発に .netやらjavaやらじゃないといけない理由てのが現状では無い MSが自滅覚悟で動かないようにしない限りVBは消せないよ あと移行するならどっちの言語も出来なきゃ駄目じゃね? そういう意味では新人でもVBやってるよ
>>786 私は新大久保に住む在日韓国朝鮮人です。名前は伏せさせていただきます。
韓国では「親日罪」がいまだにあります。日本統治時代に親日家で財をなした人の子孫はいまだに国から土地や財産を没収されています。
日本の朝鮮総督府は李氏朝鮮の酷い施政で奴隷状態だった庶民に教育を施し、生活を改善し、鉄道の敷設などのインフラ整備をして
韓国朝鮮の発展に大きく寄与しました。ところがそうした事実を韓国で語れば社会的に抹殺されるのです。
分かっていながら本当の事が言えない辛い立場にいる在日韓国朝鮮人は少なくありません。
在日韓国朝鮮人を糾弾するのは容易いことですが、まず日本人が歴史の真実を知る事が第一だと思います。
韓国という国の嘘、在日韓国朝鮮人の嘘を日本の政治家も、多くの日本人も真に受けてきたのが戦後の日本なのです。
もし日本人が正しい知識を持ち、韓国が何を言おうと、在日韓国朝鮮人が何を言おうと、はっきりと否定してきたのなら、
彼らの嘘が蔓延することはなかったでしょう。在日を批判する前に、日本国民が日本の朝鮮統治がどのようなものであったのかを知り、
共通認識として理解し、嘘を嘘だと断言するべきだと思います。
在日は差別用語
それを差別と思う奴こそ差別してるって事
792 :
デフォルトの名無しさん :2013/05/29(水) 23:59:03.69
>>789 あ、どうも、この度はご丁寧な挨拶をいただいて恐縮しています。
長すぎて読めないので3行にまとめてもらえないでしょうか。よろしくお願いします。
なんか痛々しいわ
795 :
デフォルトの名無しさん :2013/05/30(木) 00:13:41.01
自分のアタマで理解不能なものはすべてネトウヨでひとくくりするゆとり世代の特徴みたりw
おや、雑談すれに誘導しただけで顔真っ赤なのかな? ははは、つい昔話に盛り上がってしまったw雑談に移動します~ とか切り返す余裕ないの?しがみつくの?どこまでもwwwwwぷぅくすくす て感じっすわ・・・・ムキになるなよ。 VIPじゃないんだしルールを尊重しよう。
自分がムキになってることに気づかない
798 :
デフォルトの名無しさん :2013/05/30(木) 00:48:34.60
さすが年寄り言語 昔話に花が咲くな
微笑ましいよ。
おっさんの超理論すげぇわ こりゃどこまでいっても平行線だと思うよ
801 :
デフォルトの名無しさん :2013/05/30(木) 15:44:54.72
>>789 貴方は多分日本で暮らし、自分でネットなどで情報を集め勉強して、
正しい歴史に目覚めたのでしょう。しかし貴方のような人の方が圧倒的に
少数なのが現在の在日の現状です。韓国で声を上げられないのは
ここの住人は殆ど知っていますよ。何しろ大学教授が命を賭していなければ
日本は正しかった、と言えない国ですから。だが在日は違うでしょう?
韓国と違って言論統制はない。韓国政府の嘘も幾らでも情報が入る。
その上で考えを改めて日本社会に溶け込もうと努力する者を拒む国ではない。
なのにあまりにも非常識なまでに反日活動を繰り返し、あまつさえ拉致という
犯罪に加担する者を許す国があると思いますか?
802 :
デフォルトの名無しさん :2013/06/01(土) 09:14:48.18
>>789 最もな意見で考えさせられる部分も多いが、
だとしたら勇気を持ってもっと声を上げるべきではないか。
たぶんアナタのような考えの集団もいるのだろうが、
日本の文化を尊重し義務を果たしているなら、それは立派な日本人だ。
もはや出身国に対して何の気兼ねもないだろう。
いつまで自作自演続ける気だろう?
805 :
デフォルトの名無しさん :2013/06/01(土) 19:06:19.47
>>789 そんな日本に対して理不尽な韓国を知っているなら日本に帰化して在日特権を捨てなさい。
>>789 貴公の言い分は非常に正しい。貴公の言うような内容で在日韓国人達がデモをするのであれば
それに対して日本人からはなにも言わないでしょう。むしろ賛同者が出てきてもおかしくはないかと。
しかし、実際はどうだろう?そのような言い分を貶すように己の利益を守る為、
利益を得るために騒いでる者が台頭しているのではないか?それを排すことが出来ないからこそ
大きな騒ぎになったと見てもいいのでは?
>>789 ま、北による半島統一が成るような事態になったら、「嘘と分かってるのに、韓国政府に同調して
日本を罵るんじゃなかった」と後悔するんじゃないかな。ただ、それだけのことだ。
808 :
デフォルトの名無しさん :2013/06/01(土) 21:09:04.34
このスレのVB6の話題でMSにとって都合の悪い話題でもあったの?何でスレチな話題が延々と続いてるの?
俺の推理では、ちょっと前のおっさん達の昔話に切れた奴がやってると思う。 スレチな話題してもいいんだな、じゃ俺はするぜ、文句言うな的な。
810 :
デフォルトの名無しさん :2013/06/01(土) 21:42:32.56
>>808 VB6がWindows 8.1を最後にサポート終了するという事実をリークされたからだろうな。
以前にWindows 2000のソースコードが流出して、ここのアップ先のリンクが張られたときも同じような事があった。
あの時はポルポト政権とかそんあ感じの内容だったように記憶してるが昔の事なんで・・・。
>>811 リークがニュースになるはずないだろ?頭大丈夫か?
あと10年は大丈夫
というかVB6が無くなると困る人なんているの?
815 :
デフォルトの名無しさん :2013/06/01(土) 21:55:26.14
MSにとって都合が悪いニュースならVB6が今後も使えるとかいうなら分かるが 逆にVB6のサポート中止ならむしろ積極的に広めたい事実じゃねえの
817 :
デフォルトの名無しさん :2013/06/01(土) 22:11:05.19
>>812 リークはニュースになるだろ。頭大丈夫か?
そうだ。落ち着け。 VB6がWindows 8.1を最後にサポート終了するという ニュースもリークが存在しないって話だ。 まだまだサポートされるさ。
むしろ嘘でもサポート中止という情報が出回ったほうがMSにとっては都合よいだろうな 過去の遺物でしかないVB6とか
MSにとってはどうでもいいんじゃね? IDEはサポートしてないから、テストの手間は少ない。 ランタイムだけなら、自動テストできるだろうし、 OSとしての互換性はどっちみち保つ必要はあるんで、 普通に動くだろう。 サポートといってもMSは特に何かをしてるってわけじゃないし。
ソフトウェア業界に新たな需要と金の流れを作ろうとは思わんのかMSは とっととVB6を中止しろ!
VB6はどこで買えますか
ネットオークションで買えるんじゃね あとはサブスクリプションとかいうやつとか
なるほどありがとうございます
Windows8の時も同じくサポートしないって宣言してただろ 発売3ヶ月前にやっぱりしますごめんなさいって折れた Win9までにどれだけサイレントマジョリティの方々を説得できるかにかかってる
>>822 一番の反対勢力は他でもないユーザー
MSは消したい派筆頭
XPサポートも終わるし、駆逐するにはいい機会だ 16bitアプリも抹殺されてるし、入れ替え需要ふやしてくれよ
二兎を追う者は一兎をも得ず オフラインやら仮想化やらで延命するユーザーが増えるぞ
くだらん そんな奴らが我々に得になる事は何もない
VB6でストアアプリを作りたいです
既に作りました。
まあどうやって簡単に他のに置き換えられるかにかかってるだろうねぇ .NETへの単純移行は不可能な訳だし コンバーターも結構低レベルな状態だったからVB2010で消えたし 各自頑張ってね(はぁと)ってんじゃまた反発必至だろうて
834 :
デフォルトの名無しさん :2013/06/03(月) 02:53:21.85
つまりVB6の代替えが効く新たなBASIC言語を開発すれば売れるってことか!?
835 :
デフォルトの名無しさん :2013/06/03(月) 10:58:00.64
違う 俺たちIT業界のベンダーはWindowsのバージョンアップが行われる度に巨額の金が舞い込んでくる。 そう、新しいWindowsには対応していませんの一言で大金を手に入れられるわけだ。 今回XPのサポート打ち切りをMSがアナウンスしたおかげで、世間はWindows XPはもう使えなくなると勘違いしている。 さらに使い続けるとウィルスに感染して危険ですと追い打ちをかければもうアップグレードするしかない。 おかげで今期はWindows 7シフト需要で税引き前利益が前年比800億円のプラス経常となった。 そしてもし新しいWindowsでVB6が使えなくなると、試算では3672億円の経常利益が得られる公算になる。 ウチ程度の企業でこのくらいになるのだから、日本全体のIT企業における売り上げ額はは半端な額ではないだろう。
837 :
デフォルトの名無しさん :2013/06/03(月) 14:26:00.71
838 :
デフォルトの名無しさん :2013/06/03(月) 14:31:49.66
MSが期限切れXPを回収とかしなければそうなるわな 無免許運転を取り締まる警察みたいなもん
しかしまあ、来年になるとXPは使えなくなると本気で思っているクライアントの多い事多い事。。。 MSが直接TVに出て報道したのが効いてるみたいね。 XPのサポート期間終了後は何が起こっても責任を持たないというのがMSの姿勢だけど では、サポート期間中にどれだけの事をしてくれていたのだろうか? Windows Updateの回数は、未完成の製品を売りつけた事の証明だ。
サーバー・クライアントともにwindows2000のうちのシステムは万全だ
> では、サポート期間中にどれだけの事をしてくれていたのだろうか? 発売から13年に渡る長期サポート 数々の、セキュリティパッチ SP1、SP2、SP3 SP2ではファイアウォール機能など 新機能まで搭載された。 君、これと同じ事を2万円程度の 商品でやってと言われてやれるかい? 2万円で13年だよ?
サポート期間中にIEのバージョンアップとかもあったな。
>>840 のようにサポートの意味をわかってない人がいるからなぁ。
アフターサポートといえば理解できるか?
アフターサポートに何を求めているんだろうね。
サポートの金額を云々してる人がいるけど、使用許諾とサポートの対価は別物であることくらい理解していないと。。。
847 :
デフォルトの名無しさん :2013/06/03(月) 22:08:09.22
バージョンアップをサポートとを一色単にしている無知までいますが?何か?
>>845 対価が伴うのであれば永久理論も成立するが、客の方からお断りしますでしょ?普通はw
849 :
デフォルトの名無しさん :2013/06/03(月) 22:11:46.04
一度売ったソフトは永久サポートが当たり前とかいう意識が蔓延したらだれもソフトを売らなくなる つ、売れなくなる
サポート期間中に、バグ修正以外のことを無料でする人っているの? バグ修正以外ってことは、新規機能開発とか仕様変更対応なんだけど? 自分がしないくせにMSに要求するのは スジが通らないよね。
851 :
デフォルトの名無しさん :2013/06/03(月) 22:19:51.21
未完成品を売っておいて、客から問題提起されて修正して完成に近づける これはどこのソフトベンダーもやってることなのに
852 :
デフォルトの名無しさん :2013/06/03(月) 22:25:58.64
ハッカーの攻撃の的にならないソフトは問題の無い良いソフトという認識が広まったから MacやLinuxがWindowsよりセキュリティーが高度であるという馬鹿な噂が広まった しかし、MSブラスターが蔓延し、ネット上のSQL Serverが火を噴きまくった時 MSの言い訳は、ユーザーがWindows Updateをかけていなかったからだ という言い訳には正直大爆笑した
※ MSはWindows Updateをかけていなかったからという言い訳はしていない。
854 :
デフォルトの名無しさん :2013/06/03(月) 22:29:44.67
とぼけるのは自由だけどしていたよ
今からしていたという証拠を持ってくるよ。 勝ち負けをはっきりつけよう。
じゃあ、持ってこれなければお前の負けなw 言い訳すんなよ?
857 :
デフォルトの名無しさん :2013/06/03(月) 22:32:14.69
まあネット上の鯖にSQL Serverを立ててデフォのインスタンスで固定ポート開放してたら 日本の女子大生が韓国人に対して私を犯してくださいと股をひらいて言ってるようなものだが・・・
>>857 それはSQL Slammerじゃない?
何れにせよOSの欠陥に対する訴求は隠ぺいされ、ユーザーのセキュリティの甘さが原因とされていた事は今日注しているが。
隠ぺいした理由は明白で、Windowsに信頼性がないとITベンダーやそれをネタにする出版社は仕事を失うから
一致団結してユーザー責任とするしか方策が無かった。
さあ、もうそろそろ言い訳していたという 証拠を出してもらいましょうか?
ピュアVB6でSHA512を実現したい!
>>859 時間を置いても自演は自演で何も変わらないぜよ?
バレてはしかたない。
UNIX好きのおっさん連中はOfficeを使い倒してたとしてもどこかバカにしてるからな。
選民思想
最近はVBって言うとVirtualBoxのことを言うんですね、驚きました。
違うよ
ウィルスバスター?
バニラボーイ
日本経済新聞とか読んでるとよくVBって言葉を目にするけど ベンチャービジネスの略だからね
弁当箱かと
和製英語の略語を堂々と掲載しちゃう経済紙ってどうなの・・・
バーチャルボインではないかな?
もうそろそろいい?
VBでググりゃVisual Basicがずらりと並ぶだろうが!
877 :
デフォルトの名無しさん :2013/06/04(火) 20:41:46.48
>>872 日経新聞は株価操縦新聞だから。読者も池沼がターゲットだから。
あの新聞VBが何の略か書いてないから分からずググった人がVisual Basicだと勘違いしないといいけどね
米国でベンチャー・ビジネスなんて言葉は聞いたことなかったな Start Upとかそんな感じでしょう。
VBは確かにあんまり聞かないね。 ベンチャーキャピタル(VC)かインキュベーター(きゅーべい)だな
QBか
QBBチーズはよく食べたよ
883 :
デフォルトの名無しさん :2013/06/05(水) 00:00:45.52
QB = Quick Basic ナツカシス
おっとVirtual Boyの悪口はそこまでだ
885 :
デフォルトの名無しさん :2013/06/05(水) 22:19:20.31
>>885 後のSONY HMZ-T2、Google Glass、Apple iGlassであった・・・。
886 :
デフォルトの名無しさん :2013/06/13(木) 19:02:08.45
VBで為替チャート表示してる 業者のツールは縦軸の尺度が自動で変わるからダメだよ 縦軸の尺度は固定にしなきゃ感覚狂うよ ピクチャボックスの中にピクチャボックスを入れてそこにチャートを描けばいい 業者のツールからリアルタイム為替データを取得する方法は教えてあげない
楽天RSS
Vb改virgin boyの俺が通りますよ
889 :
デフォルトの名無しさん :2013/06/24(月) 14:07:40.36
2:14から 記者 期限ギリギリというところで韓国側から通貨スワップの要請が来ましたが、 以前に「日韓双方にとって利益になるなら延長してもいい」という発言がありましたから 当然スワップが延長されるものと考えてよろしいのですね? 官房長官 あくまで「日韓双方にとって利益になる」という前提ですので、通貨スワップが日本にとって 利益になるものかどうかについて、これから議論していく必要があると思ってます 記者 ええと、期限を目に前にしてこれから事務レベルの協議という事ですと、期限までに間に合うとは 到底思えないのですが、もし期限までに結論が出なかった場合はどうなるのですか? 韓国がスワップを必要と言っているのですから、議論など差し置いて今すぐにでも延長するべきと思いますが 官房長官 このように期限ギリギリに要請してくると言う事は、韓国側において余り必要でないと判断したわけです 本当に必要なら一刻を争いすぐに要請してくるだろうと考え、すぐに手続きできるよう準備した期間はありました 結果的に期限までに延長手続きが間に合わなくても、それは日本側の問題ではないと思ってます 記者 つまり、「時は金なり」ということですか? 官房長官 日本側はそう思ってます
w
891 :
デフォルトの名無しさん :2013/06/24(月) 14:33:21.38
>>886 >業者のツールは縦軸の尺度が自動で変わるからダメだよ
業者のツールって何よ?
893 :
デフォルトの名無しさん :2013/06/28(金) 13:06:42.51
VB6でPrintFormやEndDocで数秒間フリーズするのは仕様ですか? 回避する方法があったら教えてください。
印刷してるのかな? プリンタにデータを流し込む部分だから ある程度時間がかかるのは仕方なかったはず お待ちくださいと画面に出すのがいいのでは
>>894 1分毎にデータをファイルに保存しているのですが、保存時刻にPrintFormやEndDocで処理が止まっていると保存し損ねてしまうんです。
取り敢えず、時刻がXX分50~59秒ならば、データ保存処理まで待ってからrintFormやEndDocを実行するようにしています。
OS自体が数秒間フリーズしているようなので、出来るものなら回避したいです。
RS-232Cへも1秒間隔で垂れ流し送信しているのでそれも止まってしまいます。
サード製のプリンタコントローラでも貼り付けるしかないんじゃないか? とか思ったが、普通のソフトでもプリンタ操作すると、Windowsが止まってる気がするときがある…アレは何だろう。
>>896 同じプリンタでもUSBとLANで若干時間が違うみたいです。
OSもXPで3秒のところ、7(よりCPU性能は7のほうがかなり高い)だと5秒掛かります。
メッセージボックスを表示させてるときに、開発環境だと他の処理が止まるけど、実行環境だと動いてるのは何故?
気のせい
止まるとか動くとか、小学生じゃないんだからもう少し正確に物事表現しろよw
だからVBer(以下略
モーダルダイアログ表示中でもタイマ等のイベントは発生する。
>>898 が言わんとしてる現象の実態はおそらくこれ。
VB6なんかもう10年以上ろくに触ってないから記憶があいまいだけど、
Win9x上のIDEでデバッグ実行するとモーダルダイアログ表示中は
タイマのイベントも発生しなくなるんだったような。
>>898 はまだWin9x使ってるのかなw
XPでも7でも、IDE上ではタイマー止まるよ。
タイマーを使えばマルチスレッドになるのか!
と思った時期が私にもありました
所詮VBだったか
マルチスレッドに起因する不具合を完全に除去することに成功した言語
VBのランタイムはスレッドセーフ。
>>906 シングルスレッド前提のランタイムがスレッドセーフに作られてるとは思えんが
根拠はあるのか?
定説です
VB6からCreateThread APIを呼び出すのはバッドノウハウ COMのシングルスレッドモデルの仕組みのおかげで Form等の操作がスレッドセーフに出来てしまうけど、 あくまでもたまたま誤差範囲で動くといったもの
910 :
デフォルトの名無しさん :2013/08/17(土) 02:24:46.59
おい
鬼太郎
912 :
デフォルトの名無しさん :2013/08/29(木) 09:05:52.86
Windows 8.1 32bit からVB6 ランタイムのサポートが外されたね。 実際には動きそうな気がするが、IDEは従来の64bit並に動作不可っぽい。 とうとう来るべき時が来たか・・・ つ、遅過ぎたくらいだがwwww
.net Framework 1.1 のことも たまには思い出してあげてください
>>912 どこかソースある?本当なら嬉しいような非常にまずいような…
ここを見てる人間が言うのもなんだが もう6は終わっていいだろう・・・
終わってもいいかもしらんが Windows8.1 Blue でVB6があっさり動いたとの報告もあるしな
917 :
デフォルトの名無しさん :2013/08/29(木) 14:13:53.05
>>912 64bitには入っているんだね。
不思議といえば不思議。
32bitの場合、今までのランタイムやインストーラでインストールするとランタイムも入って動くとかだったりして
>>912 実際は外されてない。
前にこのスレでも見た議論の気がするが...
920 :
デフォルトの名無しさん :2013/08/29(木) 20:55:44.18
MSがサポートしないというだけで実際には最初からランタイムも入っているし動くことは間違いない。 昨今、MSのXPへのサポートが終了するということでXPを使い続けるのは危険という話が マスコミを利用して広く伝えられているが、少し考えればとても変な話であることがすぐわかる。 今までセットアップ以降、WindowsUpdateを一度も実行したことが無いXP機なんて世の中にはザラ。 すべての企業に専属の社員がいるという幻想。すべてのPCがインターネットに接続されているという都合の良い前提。 まあMSにとってはXPを排除する最後のチャンスだから仕方ないね。 ここで失敗したらWindows 8.1はお先真っ暗だよ。 バルマーが辞めても解決するはずがない。
VB6、64ビットだけでなく32ビットもサポート終了か。。。 長い間おつかれさまでした ぼくは.netに完全移行済だから何も問題ありません VBで作って VB to C# 変換ツールでC#にコンバートして あたかもC#プログラマのように振る舞えるVBは最高です!
サポートが終了ってことと、VB6製アプリが使えなくなるってことを同じに考えてるってこと? MSからサポート受けられないVB6製アプリを商売道具として使えなくなるってことか?
使えなくなるわけではない 使うなというだけだ
マイクロソフトはサポートしないけど実際に動かしてみると動くものって結構多いよね? メーカーがサポートを止めたからこそメーカーの代わりにサポートすることに価値があるのでは? これってビジネスチャンスでしょ?
925 :
デフォルトの名無しさん :2013/08/29(木) 21:25:29.45
>>924 それは詭弁ですよ
たとえばWindows 8.1でVB6プログラムを起動した場合
エイプリルフールになると裸の女性が出てきて踊り出すような細工がWindows 8.1にあったとしても
誰にも文句は言えないと言う事を理解されたし
926 :
デフォルトの名無しさん :2013/08/29(木) 21:52:12.48
>>920 右翼をけん制する朝日や毎日の反日新聞報道に近いものを感じる
マスコミを利用すればマスコミに叩かれる
まだ分かってないのか?
何のこっちゃw
今日もこのスレは平和です。
929 :
デフォルトの名無しさん :2013/08/30(金) 09:03:31.30
VB6のサポートが終わったからって困る人いるの??? まさかとは思うけど、まだnetに移行できてない人っているの? 移行しようとせずゼロから作り直す気持ちで挑めば意外に簡単だよ 特にVBについては最初は戸惑う事が少なからずあるけれどすぐに慣れるよ
作る側の問題じゃなくて既存の資産の問題だろ
VB6の資産を.netのVBに移行できない理由はベンダーに払う金がないから?
動いているならそれでいいじゃん
動いているうちに何とかしようとかは思わないわけ?
動いているものをいじりたい? 予算と時間は下りねえよ? それによって動かなくなったら責任とれよ?
935 :
デフォルトの名無しさん :2013/08/30(金) 13:40:14.25
技術の無い奴が責任転嫁をはじめたわw
リスクは回避する物だと信じ込んでる子供か
原発は安全ということにして何も対策をしてこなかった人たちに似てるな
VB6 = 東電
939 :
デフォルトの名無しさん :2013/08/30(金) 14:27:51.87
オワコン言語スレが賑やかだな
オワコンと言われつつもサポートされ続けオワらなかったVB6が 本当に終了するというので華やいでいる
941 :
デフォルトの名無しさん :2013/08/30(金) 14:35:30.99
ついでにCOMも終了すればいいのに
COMはおわらんだろう。WindowsがCOMだし。
943 :
デフォルトの名無しさん :2013/08/30(金) 14:41:00.43
COMとActiveXの違いも明確に説明できない奴が知ったような事を言うなと言いたい
COMというのはActiveX DLLの事で、ActiveXというのはOCXである。
945 :
デフォルトの名無しさん :2013/08/30(金) 14:43:13.65
うわっ!恥ずかしさを通り越してアサヒビール本社のうんこオブジェだわw
946 :
デフォルトの名無しさん :2013/08/30(金) 21:12:53.29
XPはサポート期限終了後もPC1台あたり200ドルの有償でパッチを継続配付するそうだが VB6 マジでサポート終了か
VB6は滅びぬ!
長いVB6の春が間もなく終わろうとしている
949 :
デフォルトの名無しさん :2013/08/31(土) 12:35:10.09
なごり~雪は 降る時を知り~♪
もしRTのExcelでマクロがつかえるようになるとしたら RTでVB6がつかえるようになるということですか?
Excel VBAとVB6の言語仕様はかなり違うよ Excel VBAの方が後発なので言語仕様としては進んでいる たとえばコンストラクタとデストラクタを設定できる
コンストラクタとデストラクタはVB6でもVB5でも 存在する。 VBAはVBのサブセット。 後発だろうがそんなことは関係なく、 言語仕様はVBの一部分でしかない。
え、マジで?
プロジージャー内での事じゃないのかな?
955 :
デフォルトの名無しさん :2013/08/31(土) 13:08:25.43
ンストラクタ Public Sub Class_Initialize() End Sub デストラクタ Public Sub Class_Terminate() End Sub
へえ、
>>955 が
”VBAにも” あったんだw
VBAにクラスがある事自体に驚きwww
957 :
デフォルトの名無しさん :2013/08/31(土) 13:13:45.96
VBAにはVB6にはないポリモーフィズムがあります。 例えば同じ名前で引数の数や種類が違っていると違うものとして識別してくれる機能です これよって、同じ名前でいくつも関数をつくって場面に応じて使い分けるといったことができます。 VB6だったらVaraint型とかで引数をとって中でひたすら分岐しまくる、という手口を使うしかないのです。
今度は釣りだなw VBAの機能は、ほぼすべて全部VB6にあります。 無い機能? Excel用に特殊なものがあると思うけど、 すぐには思いつかないな。
959 :
デフォルトの名無しさん :2013/08/31(土) 13:19:14.60
VBのClassはPropertyを使うとグローバル変数を操作できるトンデモ仕様 クラスとして完全なクロージャーが実現していねえ
>>959 素直だな。
ってことは本気で用語を間違ってるってことだな。
これは用語の間違いを指摘したら ダメな流れだ。
用語(ようご)は正しいと思うが? ・・・と擁護(ようご)してみる
964 :
デフォルトの名無しさん :2013/08/31(土) 13:30:00.12
マイクロソフトがRTのアプリ不足で困っているならExcel がらみもあることだし 民間のソフト生産力の資源を取り込むような VB7 for RTを作ればいいのにな
>>965 Storeアプリの申請受けたけど、あんな面倒で金がかかる事をやってられると思う?
下手するとフリーソフトまでもが認定を受けなければ将来のWindowsで動かなくなる危険もあるわけで
そんあプラットフォームなんて誰も相手にするはずないのにね
967 :
デフォルトの名無しさん :2013/08/31(土) 13:38:53.13
MSが認めたソフト以外はすべてウィルス扱いにするのが目的だから 一体どこの殿様だよ?w
>>958 VBAは2010の段階で64bit対応関係の仕様変更があったはずだけどね。
969 :
デフォルトの名無しさん :2013/08/31(土) 14:26:17.56
.netって32bitも64bitも言語側からは何も意識することは無いよね? 32bitの.net Frameworkを使えば32bitアプリになるし 64bitの.net Frameworkを使えば64bitアプリになる。 だからプログラマは何をすることもなく「64bit対応」と謳うことができる。 それに比べてVB6はどう頑張っても永遠に32bitアプリしか作れない。 この差は大きいよん♪
32bitアプリしか作れないことに どんな差があるんだ? 単に数字が大きいほうが えらいと思ってるだけ?
でかいメモリを扱える
どんな場合にでかいメモリが必要になるんだ
まず、自分のタスクマネージャをみて 4GBか2GBを超えるメモリを使っている アプリを教えてくれ。
グラフィックをバリバリ使うようなのかな 画像を大量に使うとあっといまに1ギガとかつかっちゃってビビる
フォトショとか結構使うときいた
VBでフォトショみたいなソフト作るのか?
ゲームとか動画編集とか
VB6で作れるものは限られるなあ
いやいや、やばいから抑えるようにしたんだよ でもそうすると重くなるからもっとメモリ使いたいよ。
だから、それをVB6で作らなきゃいけないのか?
まあアプリの64bit対応はプラットフォームの64bit化ほど意味がないのは常識だね。 Win7が出る直前の頃だと思ったけど、どこかのWebメディアにそういう趣旨の翻訳記事が 転載されてたんだが、MSの圧力かどうか知らないけどあっという間にその記事削除されたのは 見てて笑ったw
983 :
デフォルトの名無しさん :2013/08/31(土) 16:16:27.72
2GB以上のファイルサイズのファイルを取り扱うときとか
いや32ビットだからなんなの?ってなこと言ってたから
API使えば2G以上使えたような
API使ったら負け
なさけない…
988 :
デフォルトの名無しさん :2013/08/31(土) 20:29:53.61
.netってもっさりするんだよね VB6はCコンパイラが吐くコードだから速度は意外に速い スカラー型主体の演算ならC++アプリとそん色ない動きをする ある意味貴重だよね
そういう頭の悪い繰言言ってると例の記事貼るよw
JavaだろうがスクリプトだろうがAPIを主体に使えば高速なソフトを作れる 逆にC++であっても出来の悪いライブラリを繰り返しコールしていたら遅くなる
991 :
デフォルトの名無しさん :2013/08/31(土) 20:44:59.10
VB6が高速だと言う事については誰も否定しないんだな うんうん
Delphiのプログラマって今でもかなりいるみたいだけど、VB6ユーザーとどちらが多いのだろう?
>>991 いやいや君がその程度のコードしか書いてないからそう思っちゃうだけ悪いけど。
っていうか、次のスレ以降はテンプレに例のわんくまの人の記事を入れとくべきだなw
>>991 高速であるという根拠が書かれていないから、
別にそんなに主張したいわけではなく
自分の希望を言っただけなんだろうな程度にしか
思ってなかったけど、本気で速いといいたいの?
ならベンチマーク出してよ。
俺はVBは遅くはない程度の意見しか持ってないよ。
オワコン言語だし次スレは要らないね
意訳 たてるなよ!たてるなよ!
VB6今までありがとう
999 :
デフォルトの名無しさん :2013/09/01(日) 00:37:27.18
1000 ならWindows 8.1で VB6 サポート終了!!!!!!!!!!!!
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。