LOOPを駆使し通信データを処理してますが、タイムアウトのために500msec程度の
"SLEEP"を使ってます。
APIは山ほどあるのに、ほかに使っていないのです。
試せばもっと具合よいプログラムになると思うのです。
使いこなすために、良いテキストや方法、Web教えていただけませんか?

このQ&Aに関連する最新のQ&A

A 回答 (2件)

Win32 APIの使い方「基礎編」


http://www.galliver.co.jp/book/apibas/index.html

この1冊を読めばAPIの世界が開けます。

サンプルは大抵、インターネットで拾えるので
如何に検索するかが重要となります。
よく使うサイトは次の4つです。

http://search.microsoft.com/default.asp?siteid=j …
http://www.google.co.jp/
http://www.vbvbvb.com/jp/gtips/index.html
http://www.treasuredale.com/vbrc/index.php3

>あと同時にVBのメーリングリストに入っておくと、見てるだ
>けで勉強になります。

同感です。2つ紹介しておきます。
http://www.vbvbvb.com/jp/magazine/index.html
http://www.int21.co.jp/pcdn/
    • good
    • 0
この回答へのお礼

4つのサイトはわたしにもわかりそうです。
vbvbvbよさそうです。
どうもありがとうございます。

お礼日時:2001/11/06 17:26

APIビューワは使用していますよね。

確かにあれじゃパラメータが何なのか、関数の戻り値の意味なんて全くわからないですもんね。
まず第一に必要なのはAPIの関数本でしょう。特に指定はありません。大体は機能別に書いてあるので、「WIN32API」の文字が入っていれば間違いありません。親切な本はVBとCでのパラメータの渡し方を、両方とも書いてあるのが会ったような気がします。しかしAPIをMSDNで検索する要領がわかれば、真っ先に必要がなくなります。
次にテクニック集の本が欲しくなってくると思います。でもこれもまた特に買う必要はないと思います。結構サンプルがネットに転がってるんですよね。
あと同時にVBのメーリングリストに入っておくと、見てるだけで勉強になります。

参考URLはたくさんあるので、ここに書き込みます。

有限会社ガリバーのHP:VBに関してのいい本をたくさん出してる会社です。
http://www.galliver.co.jp/

vbvbvb.com:有限会社ガリバー出版のVBTips1000+に載っている本の内容以上のサンプルがたくさん存在します。(僕は本を買いました。)
http://www.vbvbvb.com/jp/index.html

み~くんパパの仕事場:[VB サンプル クラス]のページには、普通の人がやらないようなサンプルを配布しています。
http://www.mitene.or.jp/~sugisita/family/papa/vb/

Web On SFDATA:上級者向けです。メーリングリストを読んでると、高等な技ばかりに目をむきます。検索くん壱号によりメーリングリストの過去の履歴を検索することができ、ほとんどのAPIを網羅してます。ぼくもこのメーリングリストは熟読してます。(ぼくはここでVBによるAPIの使用方法を覚えました。)
検索するにも登録が必要です。(無料/フリーメルアド不可)ちなみに、過去の履歴に存在する質問と、全く同じ質問をすると、冷たくあしらわれちゃいます。。。
http://www.sfdata.ne.jp/windev/search.html


ご存知かとは思いますが、Cのポインタの考えを理解した上でやらないと、理解に苦しむ部分が多いと思います。
    • good
    • 0
この回答へのお礼

細かなことまでどうもありがとうございました。
早速サービスの登録をしようと思います。

お礼日時:2001/11/04 20:23

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aと関連する良く見られている質問

QAPI Sleep関数について

Sleep()で指定できる最大値はいくつになりますか?

Aベストアンサー

ミリ秒(1/1000)で指定し、引数はas Longだから、長整数型で2,147,483,647(2^31)ミリ秒と、定義どおり考えて良いのではないでしょうか。
だだこのAPIの作用の性格から限度が自ずとあるでしょう。
大きい数字を与えてしまったばあい、Ctrl+Pause(Break)では、止めれないので注意との事です。

Qloop終了後のセルの一個右から同様のloopを行う方法

・loop終了後のセルの一個右から同様のloopのプログラムを組むのが目的です。
・データはA列にランダムに数字が入っているものとします。
・条件式としては基準値より小さな数字が一個下のセルにあったら↓を表示して、さらに下に行くという風にして、基準よりも多くなったところでloopがストップする設定です。
・困っているところをうまく表現できてないかも知れませんが、よろしくお願いします。
---------------------------

Sub 比較()
Dim i As Integer
Dim j As Integer
Cells(1, 2).Select
ActiveCell.FormulaR1C1 = "=IF(RC1>R1C1,""→"",""↓"")"
i = 1
Do While Cells(i, 2).Value <> ""
If Cells(i, 2).Value = "↓" Then
Cells(1 + i, 2).Select
ActiveCell.FormulaR1C1 = "=IF(RC1>R1C1,""→"",""↓"")"
End If
i = i + 1
Loop
Cells(i - 1, 3).Select
ActiveCell.FormulaR1C1 = "=IF(RC1>R" & i - 1 & "C1,""→"",""↓"")"
j = 1
Do While Cells(i - 2 + j, 3).Value <> ""
If Cells(i - 2 + j, 3).Value = "↓" Then
Cells(i - 1 + j, 3).Select
ActiveCell.FormulaR1C1 = "=IF(RC1>R" & i - 1 & "C1,""→"",""↓"")"
End If
j = j + 1
Loop
End Sub

・loop終了後のセルの一個右から同様のloopのプログラムを組むのが目的です。
・データはA列にランダムに数字が入っているものとします。
・条件式としては基準値より小さな数字が一個下のセルにあったら↓を表示して、さらに下に行くという風にして、基準よりも多くなったところでloopがストップする設定です。
・困っているところをうまく表現できてないかも知れませんが、よろしくお願いします。
---------------------------

Sub 比較()
Dim i As Integer
Dim j As Integer
Cells(1, 2).Select
Ac...続きを読む

Aベストアンサー

'こんな感じでどうでやんすか
Sub 比較改()
Dim i As Integer
Dim j As Integer
Dim k As Integer

i = 2
j = 2
k = 1
Cells(k, j).FormulaR1C1 = "=IF(RC1>R" & k & "C1,""→"",""↓"")"
Do While Cells(i, 1).Value <> ""
If Cells(i, 1).Value > Cells(k, 1) Then
Cells(i, j).FormulaR1C1 = "=IF(RC1>R" & k & "C1,""→"",""↓"")"
k = i
j = j + 1
End If
Cells(i, j).FormulaR1C1 = "=IF(RC1>R" & k & "C1,""→"",""↓"")"
i = i + 1
Loop
End Sub

QDO~LOOP でのLOOPの抜け方

コマンドボタンを押して(スタートボタン)DO~LOOPで実行しているときにストップコマンドボタンを押してストップさせるときの LOOPの抜け方がわかりません。すみませんがよろしくお願いします。

Aベストアンサー

#2と#4のtinu2000です。
stop_flag を共通変数にしないと、それぞれ別の変数とみなします。

ここから下をコピー&ペーストして見て下さい。

Public stop_flag As String

Private Sub CommandButton1_Click()
Dim i As Integer, n As Integer, b As Integer, a As Integer

stop_flag = False
Do
a = 1
For i = 0 To 7
Range("a1") = a
For n = 0 To 500
Next n
a = a + 1
Next i

a = 2
For b = 0 To 7
Range("b1") = a
For n = 0 To 500
Next n
a = a * 2
Next b

DoEvents
If stop_flag = True Then Exit Do

Loop

End Sub

Private Sub CommandButton2_Click()
stop_flag = True
End Sub

#2と#4のtinu2000です。
stop_flag を共通変数にしないと、それぞれ別の変数とみなします。

ここから下をコピー&ペーストして見て下さい。

Public stop_flag As String

Private Sub CommandButton1_Click()
Dim i As Integer, n As Integer, b As Integer, a As Integer

stop_flag = False
Do
a = 1
For i = 0 To 7
Range("a1") = a
For n = 0 To 500
Next n
a = a + 1
Next i

a = 2
For b = 0 To 7
Range("b1") = a
For n = 0 To 500
Next n
a = a * 2
Next b

DoEvents
If s...続きを読む

QVisualBasic6.0のFormat関数でmSecを表示したい

VisualBasic6.0のFormat関数で時刻をあらわす方法でFormat(CStr(Now),"h:mm:ss")としていますが、mSecをあらわすときはどうしたらいいのでしょうか。どなたか教えてください。
VB.NETのffを使ってみましたがだめでした。

Aベストアンサー

Now関数では ミリセカンドの精度は持っていないようです
dim d as Double
d = now
' 日付部分を削除
d = d - Fix(d)
' 秒単位に変換
d = d * 24. * 60 *60
' 秒部分を削除
d = d - Fix(d)
といった具合にすれば 秒未満の数値が取り出せそうですがここまでの分解能が無いため浮動小数点の誤差程度の値しか求まりません

ミリ秒を取得するのであれば WinAPIのGetSystemTimeなどを使ったほうがいいでしょう

Private Declare Sub GetSystemTime Lib "kernel32" (lpSystemTime As SYSTEMTIME)
Private Type SYSTEMTIME
wYear As Integer
wMonth As Integer
wDayOfWeek As Integer
wDay As Integer
wHour As Integer
wMinute As Integer
wSecond As Integer
wMilliseconds As Integer
End Type
といった具合で宣言して

dim st as STSEMTIME
GetSystemTime st
debug.print st.wMilliseconds
といった具合で取り出せますよ

Now関数では ミリセカンドの精度は持っていないようです
dim d as Double
d = now
' 日付部分を削除
d = d - Fix(d)
' 秒単位に変換
d = d * 24. * 60 *60
' 秒部分を削除
d = d - Fix(d)
といった具合にすれば 秒未満の数値が取り出せそうですがここまでの分解能が無いため浮動小数点の誤差程度の値しか求まりません

ミリ秒を取得するのであれば WinAPIのGetSystemTimeなどを使ったほうがいいでしょう

Private Declare Sub GetSystemTime Lib "kernel32" (lpSystemTime As SYSTEMTIME)
Private T...続きを読む

QVBで初めてのAPIを使う人のためのHP

APIの勉強をしようと思います。
初心者にもわかりやすいHPをご存知でしたら
お願い致します。

Aベストアンサー

こんにちは、ats8181oyajiです

お勧めサイト
http://www.vbvbvb.com/jp/index.html

まっとにかく、なんか作ってみることです。

では

参考URL:http://www.vbvbvb.com/jp/index.html


人気Q&Aランキング

おすすめ情報