• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:VBでGetTickCountを使う)

VBでGetTickCountを使ってmsecデータを扱う方法とは?

このQ&Aのポイント
  • VB初心者のためのGetTickCountを使ったmsecデータの取り扱い方について解説します。
  • GetTickCountを使用してmsecデータを扱う際に、時折大きな数値が帰ってくる場合があります。その原因について考察します。
  • WindowsXPにおいてGetTickCountを使用してmsecデータを取得する際、精度の向上につながる方法を紹介します。

質問者が選んだベストアンサー

  • ベストアンサー
  • MARU4812
  • ベストアンサー率43% (196/452)
回答No.2

VBのバージョンと関数定義が間違っています。 > Handles buttonRun.Click このコードは VB.NET 以降のもの。 VB.NET 以前(VB6.0など)と大きく仕様変更がありました。 処理のベースが 16bit→32bit に変わりました。 http://msdn.microsoft.com/ja-jp/library/dd297710.aspx > Private Declare Function GetTickCount Lib "Kernel32" () As Long この定義は VB.NET 以前のものですので、Long を Integer に 変更する必要があります。 ただ、GetTickCount って System.Environment.TickCount がフレームワーク上から呼び出していたような気もします。 http://dobon.net/vb/dotnet/system/tickcount.html 自分で初心者と言っているような人が API 宣言使うより、 フレームワークの関数を利用した方がいいと思います。

moretopspin
質問者

お礼

丁寧な回答大変ありがとうございました。 Long を Integer にしたら解決しました。 助かりました。

その他の回答 (1)

  • DreamyCat
  • ベストアンサー率56% (295/524)
回答No.1

VBを使っていないので、見当はずれの横槍になるかもしれませんが。 まずこれをわかりやすく書いてください。 他人が見た時は無意味なデータで混乱します。 TextBox1.Text = TextBox1.Text & n & " : " & BeforeTime & " " & BeforeTime - NowTime & ControlChars.CrLf ↓ TextBox1.Text = TextBox1.Text & n & " : " & BeforeTime - NowTime & ControlChars.CrLf ・VBの数値の型とAPIの型は合っているでしょうか。違っているような気がします。 そのためにこんなありえない値が出るのではないかと。4,294,967,311 昔のlongと今のVBのlongではビット数が2倍違うのでは? ・私の古いXP機、Excel VBAでもわずか1msで8000回も取得できます。 プログラムがCPUを占有していると数百msくらいになることはあるかもしれません。 0以外の値を簡単に取得したければループの中にDoeventsを入れてください。 VBAの場合で、また私のHPなのですが参考にしてください。 http://homepage2.nifty.com/DreamyCat/APIpage1.htm

moretopspin
質問者

お礼

丁寧な回答大変ありがとうございました。 型でした、型を合わせたら解決しました。 助かりました。

関連するQ&A

専門家に質問してみよう