(*´д`*)アハァ… VB初心者質問スレ Part22
■ このスレッドは過去ログ倉庫に格納されています
0001HTML化チェック済み
NGNGPart12 http://pc3.2ch.net/tech/kako/1026/10266/1026642565.html
Part13 http://pc3.2ch.net/tech/kako/1029/10292/1029241786.html
Part14 http://pc3.2ch.net/tech/kako/1030/10309/1030947162.html
Part15 http://pc3.2ch.net/tech/kako/1032/10327/1032706491.html
Part16 http://pc3.2ch.net/tech/kako/1034/10343/1034302532.html
Part17 http://pc3.2ch.net/tech/kako/1036/10361/1036154952.html
Part18 http://pc3.2ch.net/tech/kako/1038/10381/1038103769.html
Part19 http://pc3.2ch.net/tech/kako/1039/10398/1039859691.html
Part20 http://pc2.2ch.net/tech/kako/1041/10418/1041879465.html
Part21 http://pc2.2ch.net/test/read.cgi/tech/1044028945/
VB.net関連スレ
【老若】VB.net質問スレ【男女】 (Part2)
http://pc2.2ch.net/test/read.cgi/tech/1043629429/
心得
壱.質問する前に過去ログにも目を通してみる。
弐.質問する前に MSDN などで調べてみる。
参.VBScript もこのスレでOK。
四.インストーラーなどの質問もOK。
五.下ネタもたまにならOK。
0794デフォルトの名無しさん
NGNGキャレット
0795デフォルトの名無しさん
NGNG>APIはC言語から使うことを前提に設計されている。
じゃあWin16がCの標準でないPascal呼出規約を使ってた理由は?
これに答えられずに>>793の様なことをほざいている場合、君は知ったかだよ。
0796デフォルトの名無しさん
NGNGGetProcAddress() の引数と C の関数名には何ら関係が無いと思ってたけど。
0797デフォルトの名無しさん
NGNGある。C以外の処理系のリンカが#を含めないかどうか言い切れなかったんでね。
まぁこの場合、APIの話しだから、あえてCの.. は外しても良かったかも知れんが...
0799デフォルトの名無しさん
NGNGPATが何でできているかわからないけど、テキストボックスが相手なら、
ウィンドウハンドルを取得してWM_SETTEXT を投げればいいんじゃないかな。
0800デフォルトの名無しさん
NGNG”カーソル”もしくは”ピコピコの”だよ
0801デフォルトの名無しさん
NGNGそっちの方がメモリやディスク容量を食わないからだよ。
0802デフォルトの名無しさん
NGNG前者:ちょっとパソコン使える人
後者:バカ
なお、どちらもWindowsプログラムを行うものとしては不合格。
0803デフォルトの名無しさん
NGNGそれだとどうとでも取れる。詳しく頼む。
0804デフォルトの名無しさん
NGNGスタックと言えば分かるかな?
0805デフォルトの名無しさん
NGNG「スタック」だけでは説明になってないのは分かるよな。
両者ともスタックを使用する。
0806デフォルトの名無しさん
NGNG俺だけが答えるのはしゃくだから、
C呼出規約とPascal呼出規約のスタックの処理の違いを述べよ。
調べれば分かるはずだ。
0807デフォルトの名無しさん
NGNG0808デフォルトの名無しさん
NGNGいや、知ってて絡んでるんだが。(藁
君を試してるってとこだ。
0809デフォルトの名無しさん
NGNG教えて君必死だな(藁
0810デフォルトの名無しさん
NGNG分かってて遊んでるんだが(藁
どっかからコピペすることくらいできるだろ。
0811デフォルトの名無しさん
NGNGほう、そう来たか。
要はPUSHとPOPがどこで行われるかってのが重要なんだよ。
と、先読みレス。
0812デフォルトの名無しさん
NGNGAPI を作ることは可能。
そいつを呼び出す事も可能。
ただ、先頭に "#" をつけると序数として判断されてしまう仕様の VB からは
呼び出すのは無理ぽ。
とにかく、>>790 >>793 >>797 が DQN であることはわかった。
0813デフォルトの名無しさん
NGNG相手がDQNだと確信し、自作自演で自分の優位性を確固たる物にしようとした。
>>811
先読みキャッシュ(藁レスが相手を直撃
で、ぐぅの音もでなくなったのか。ワラタ
0814デフォルトの名無しさん
NGNG呼び出せるって言ったってGetProcAddressを使う方法だろ。
呼び出せるのに#を使ってないのがC言語で使うために
設計されているいい証拠じゃないか。それにMSDNにも次のような文がある。
> 通常、API は Windows アプリケーションを作成する
> C/C++ プログラマ用に記述されていますが、
> とにかく、>>790 >>793 >>797 が DQN であることはわかった。
まず最初に己がDQNであることを疑うんだな。
>>813
おまえもウザイ。
> >>809-810
> 相手がDQNだと確信し、自作自演で自分の優位性を確固たる物にしようとした。
だれも自作自演してねーよ。
先読みキャッシュ? あれだけヒントが出てれば誰だって分かるだろ。
他人のヒントをまって、さも始めからわかっていたような顔をするな。
自分用語作って悦になんなよ。ホント春は変な奴が多いな。
0815デフォルトの名無しさん
NGNG0816デフォルトの名無しさん
NGNGVB6でACCESSのMDBを使ってます。
ワークテーブルにレコードを挿入し、それをFlexGridで表示する、という画面を
作ったのですが、いざ実行してみると
ワークテーブルにレコードができる前に画面表示が行われてしまい、ADOの
抽出件数0件になってしまいます。
画面表示に行く前にmsgbox出してしばらく待つとレコードができててうまく動く、という次第。
レコードができるまで処理をとめる方法ってないんでしょうか?
このままでは、ループでワークテーブルの件数を監視し続けるしか……
0817デフォルトの名無しさん
NGNG> 呼び出せるって言ったってGetProcAddressを使う方法だろ。
> 呼び出せるのに#を使ってないのがC言語で使うために
> 設計されているいい証拠じゃないか。それにMSDNにも次のような文がある。
GetProcAddress() を使う以外に API を理由する手段があるのか?
まさか PE のローダーが GetProcAddress() を使ってないとでも言うのか?
API 名と C での関数名を同じにしなければならない理由があるのか?
例えば MoveMemory() なんてものはなく実際には memmove() または
RtlMoveMemory() が呼ばれるって知ってるか?
> まず最初に己がDQNであることを疑うんだな。
オマエモナー
0818デフォルトの名無しさん
NGNG> > 通常、API は Windows アプリケーションを作成する
> > C/C++ プログラマ用に記述されていますが、
「通常」 って書いてあるだろ。>>781 が通常の話じゃない。
話を勝手に全般化するな。
0819デフォルトの名無しさん
NGNG0820デフォルトの名無しさん
NGNGADOだとままあることなんだけど、「これ」といった対応策はないんだよね。
ループで待機するってのも、ひとつの解決策だと思うよ。
もしくは、クエリーを投げた後に、コネクションを閉じてみるなんてのはどうだろう?
0821デフォルトの名無しさん
NGNG>例えば MoveMemory() なんてものはなく実際には memmove() または
>RtlMoveMemory() が呼ばれるって知ってるか?
ヘルプに書いてあることでいばってもなぁ。
そんなことよりRtlの意味から説明してくれや、な。
0822デフォルトの名無しさん
NGNG要点は、787が言ってる通りだろ。
C/C++向けに設計されている点に変わりはないと思うが。
0823デフォルトの名無しさん
NGNGこの場合の 「C/C++向けに設計されている」 いうのは、ポインタとかゼロ終端
文字列とかコールバックとかそういう機能面での話であって、リンクの方法の
話ではないんでは?
0824デフォルトの名無しさん
NGNGRtl: Run-Time Library。以上。
0825デフォルトの名無しさん
NGNGMessageBoxAとか出しとけばいいのに。
0826デフォルトの名無しさん
NGNG要点なんかどうでもよく、>>790を徹底的に叩きたいだけかと。
0827デフォルトの名無しさん
NGNG∧_∧
( ´∀`)< ぬるぽ
08281 ◆ExGQrDul2E
NGNGそのファイルをメモリから呼び出すにはどうすればいいの?
音飛びさせたくないマルティメディアファイルなんかはディスクアクセスでなくメモリアクセスを行いたい。
08291 ◆ExGQrDul2E
NGNG0830ひきプロ
NGNGredim buffer(filelen(filename))
open "file" for binary as #1
get #1,,buffer
close #1
API呼ぶ時はVerPtr(buffer)でポインタを渡す
0831ひきプロ
NGNG0833デフォルトの名無しさん
NGNGつぅか、
ファイルサイズ分のメモリを確保。ファイル一気書き。読む。
だけじゃん。どうでも良いけど300MBのファイルとかどうするつもりなんだろう・・・
08351 ◆ExGQrDul2E
NGNG---------------------
\CG(フォルダ)
a.vbp
a.frm
a.bas
a.exe
----------------
ユーザにソフトを配布しようと思いディストリビューションウィザードを使うが、
ディストリではフォルダを読み込むことができないためCGフォルダが配布できない。
フォルダを含んだインストーラを作るときはどうしてる?
0836ひきプロ
NGNG08371 ◆ExGQrDul2E
NGNGユーザのパソコンにVBランタイムが無いときは、
ランタイムの配布と、実行ファイルの配布の2段階になっちゃうでしょ。
だからインストーラで、ランタイムの配布と実行ファイルのセットアップを一気に行いたい。
0838ひきプロ
NGNGことはないでしょう。フォントが文字化けする時は
明示的にMSゴシックを指定すればいいだけだし
08391 ◆ExGQrDul2E
NGNGまあ、自作のocxなどの配布も含めた話になるとやはりシステムに必要なファイルをセットアップする作業と、
任意のフォルダに本体実行ファイルをセットアップする二段階になってしまう。
VBではできない、または、フォルダをセットアップするためのユーティリティが発売されていない、
という結論でよい?
0840ひきプロ
NGNGアプリと同じフォルダに入ってれば使えるし。
>という結論でよい?
ダメ
08411 ◆ExGQrDul2E
NGNGocxは例えばのはなしで、とにかくシステムにdllを別途登録しないとVBアプリが動かないことは多々あるし。
>ダメ
ということはなにかフォルダをsetup.exeや.cabファイルに含ませるための方法があるということやね。どうやるの?
0842デフォルトの名無しさん
NGNG08431 ◆ExGQrDul2E
NGNGそれは今までやってたが、今さっきsetup.exeで方法がわかったのでやりかたをまとめてみる。
これにより、ランタイム&ソフト本体のexeファイル&ソフト本体が扱うデータファイルやフォルダ
を一回でインストールできることになり、
VBを市販の製品用のプログラミングツールとして活用できることに成功した。
ランタイムのセットアップとその他のファイルの別配布をやっているようじゃいつまでたってもフリーソフトや固定客用のアプリしかつくれないものね。
08441 ◆ExGQrDul2E
NGNG長らくお待ちを。
08451 ◆ExGQrDul2E
NGNG0846デフォルトの名無しさん
NGNGDim dteBuilt As Date
dteBuilt = DateAdd("s", 1046354784, #1/1/1970 9:00:00 AM#)
Debug.Print dteBuilt
0847デフォルトの名無しさん
NGNG「ファイルの追加」( .xlsや.ini など必要ファイルを登録する)
機能があり、作成されたSetup.lst は
「設定パスを手書きできる」
んであるわけで
File10=@CGのファイル.jpg,$(AppPath)\CG,,,7/3/00 3:00:32 PM,49076,0.0.0.0
などと変更すると設定するファイルの置き場所が変わったり・・
( ´〜`).。o~
08481 ◆ExGQrDul2E
NGNGオレもひろゆきの発言を元にそれを書いたことがある。
>>847
オレもそれについての初心者向け解説文を書いてみた。
-----------------------
開発時のファイル構成が次のようになっているとする。
-----------------------
\File\temp.txt(データファイル)
Form1.frm
Project1.vbp
Project1.exe(コンパイルして作成した実行ファイル)
-----------------------------
今回の目的は\File\temp.txtをインストーラに含ませて、
そのインストーラ(setup.exe)が.txtファイルを
セットアップ先のフォルダの中の\Fileフォルダにインストールすることだ。
・インストーラの作成
ディストリビューションウィザードを起動して、
ディストリビューション ウィザード - 含まれるファイル
というメニューまで進んだら追加ボタンを押して
\File\temp.txt
を追加する。
ウィザードを進めて完了ボタンを押すと、
08491 ◆ExGQrDul2E
NGNGProject1.CAB
setup.exe
SETUP.LST
---------------------
というファイルが作成される。
このsetup.exeがインストーラだ。
.CABファイルには配布用ファイルが格納されている。
今setup.exeを実行すると
\Program Files\Project1フォルダの中に、
Project1.exe
ST6UNST.LOG
temp.txt
がセットアップされる。
注目すべきは、
temp.txtは開発環境時は
\Fileフォルダにあったということだ。そしてセットアップ時にも\Fileフォルダに入れたい。
08501 ◆ExGQrDul2E
NGNGディストリビューションウィザードが作成した
SETUP.LST
をテキストエディタで開いて編集する。
[Setup1 Files]
[email protected],$(AppPath),,,3/14/03 10:26:12 AM,2,0.0.0.0
[email protected],$(AppPath),,,3/14/03 10:50:26 AM,16384,1.0.0.0
このような場所を探す。
そして、
[Setup1 Files]
[email protected],$(AppPath)\File,,,3/14/03 10:26:12 AM,2,0.0.0.0
[email protected],$(AppPath),,,3/14/03 10:50:26 AM,16384,1.0.0.0
このように編集してみよう。
$(AppPath)
を
(AppPath)\File
にしただけだ。
そしてこの編集結果を上書き保存する。
そのあとsetup.exeを実行すると、セットアップ先のフォルダの中に
\Fileフォルダ
が作成され、そのなかにtemp.txtがあるのを確認できる。
$(AppPath)\あいうえ お\DeepSub
のように日本語フォルダやスペースを含んだフォルダや階層の深いフォルダも指定できた。
08511 その他の方法 ◆ExGQrDul2E
NGNGUNZIP32.dll
がフリーソフトなのを生かしてこれをsetupファイルに含ませてインストールし、
アプリケーションをはじめて起動したときにzipファイルを自動解凍して
必要なフォルダやファイルをセットアップする。
0852デフォルトの名無しさん
NGNGカンマで区切られたデータの分解には成功しているのですが、
ダブルクォーテーションマークでくくられている文字列の扱いがうまくいきません。
なんとかうまい方法はないでしょうか?
0853デフォルトの名無しさん
NGNGsystem32の下に入れて共有にしたり,アプリとはまったく別のパスになったり
仕様変更で差分だけインスト・アンインストできるようにしたり
最初んころは訳解らんかったよ(今も完全とはいえん)
>>851
zipファイルの削除はちゃんとおこなっているか
UNZIP32.dllがすでに登録されていた場合にレジストリ二重登録にならないか
UNZIP32.dllは使用後に削除するかしないか,その時レジストリは大丈夫か
くらいはちょっと気になるな。
0854デフォルトの名無しさん
NGNGデバッグしたら?
0855デフォルトの名無しさん
NGNGダブルクォーテーションも文字列になってしまうってことか?
それなら、
String = Mid(String, 2)
String = Left(String, Len(String) - 1)
とでもすりゃぁ良いのでは?
08561 ◆ExGQrDul2E
NGNGもちろんUNZIP32.dllが相手のパソコンにすでにあるかどうかのチェックも行っているし、
Windowsのバージョンの違いによる
system
system32
のどちらを使うか、という問題にも対処したあるからだいじょうぶ。
UNZIP32.dllを共有ファイルとして使用するかどうかの設定もバッチシ。
08571 ◆ExGQrDul2E
NGNG08581 ◆ExGQrDul2E
NGNG0859デフォルトの名無しさん
NGNGExGQrDul2E
0861852
NGNGすいません。ちょっと言葉が足りなかったようです。
abc,"123,456,789" というCSVデータがあったとして、そのままカンマ区切りを
してしまうと、abc "123 456 789" というデータになってしまうのです。
"でくくられているところのカンマで区切らないやり方がどうもうまくいきません。
なんとかならないでしょうか?
0862デフォルトの名無しさん
NGNG今どうやってるかによるけど、
Wクオーテーション内かどうかのフラグを立てるだけですむのでは?
0863デフォルトの名無しさん
NGNGべたなやり方だけど、頭から1文字ずつ取っていって、
”があったらフラグON、次の”でOFFにして、ロジックで文字列くっつけていけば?
0864デフォルトの名無しさん
NGNG0865デフォルトの名無しさん
NGNGダブルクォートを含む文字列データはどうするんだ
と言ってみるテスト。
0867デフォルトの名無しさん
NGNGあのさ、知らない間にVBランタイムなんか入れるようなもん作らないで欲しいんだけど。
最低でもVB製って事だけは明記してくれよ。
DL回避になるから。
0868デフォルトの名無しさん
NGNGExGQrDul2Eですか?(w
0869デフォルトの名無しさん
NGNGまともに処理させたいなら Split() を使ってはいけない。
InStr() を駆使してダブルクォーテーションをきっちり調べろ。
>>865
Excel なんかでは、ダブルクォーテーションで囲われた領域の中でダブルクォーテーション
を 2 つ並べると 1 文字のダブルクォーテーションとして認識される。
0870デフォルトの名無しさん
NGNGCSV の禁止文字? はつみみです。
0871GIF
NGNGBMPしかリソースにする方法がわかりません。
またリソースにできるのでしたらどうやって使うのでしょうか?
0874デフォルトの名無しさん
NGNGおにぎりは 3 つ、具は梅干し、しゃけ、たらこにすること。
0876デフォルトの名無しさん
NGNGVB使いだが問答無用でインストールされるのはいやだな。
08771 ◆ExGQrDul2E
NGNGスパイウェアとかだったらいやだけど、
アプリの動作に必要で、それ以外にはまったく影響しないdllなら勝手にインストールされても気にならないけどな。
そういう人もいるんだなあと参考にする。
08781 ◆ExGQrDul2E
NGNGエロといえば森川ゆかり
ttp://www.interq.or.jp/guitar/lead/tripod-vip-eria/user-knight/a020.zip
Windowsスタートメニュー → プログラム → 2chSoft のところのショートカットを起動する。
ソフトの削除はエクスプローラではなくコントロールパネル→プログラムの追加と削除から行う。
画像は\Program Files\フォルダに入っている。
今回はjpgでなくpngファイルなので画質劣化無しの高画質だ。
↑UNZIP32.dllを実際に使ったアプリ
0879デフォルトの名無しさん
NGNG0881デフォルトの名無しさん
NGNGVB のランタイム等がシステムとかに 「まったく影響しない」 事は立証できるか?
0882デフォルトの名無しさん
NGNGあんまり図に乗ってるとアク禁依頼が出るんじゃ?
08851 ◆ExGQrDul2E
NGNGだからどうかアク禁にしてオレを楽にしてくれ。
0886アシュル ◆adhRKFl5jU
NGNG0888デフォルトの名無しさん
NGNG0889デフォルトの名無しさん
NGNGVBで作られたソフトなんてロクなもんじゃないから、という理由。
0890デフォルトの名無しさん
NGNGそう自白すると誰もアク禁依頼出さなくなる罠
0891VB最強・だ・ぞ♪
NGNG0892デフォルトの名無しさん
NGNGこうなったら意地でもおまえのマシンにVBランタイムぶっこんでやる!
0893デフォルトの名無しさん
NGNG■ このスレッドは過去ログ倉庫に格納されています