FC2ブログ

FreeBASIC 学習:time モジュール

2019-08-07 :  PCクリニック
3年前(2016-03-29)の記事:
GSL Shell 学習:Lua モジュール・サイト」で、
timeモジュールについて書いている。

  ・LuaPower サイトからダウンロードした。

具体的には、
その2ヶ月前(2016-01-18)の記事:
Lua 学習:FFI Bindings
  ・・・・・
  ・・・・・
  Core OS Libraries
  の5番目:
  luapower/time: time, clock, sleep (Linux/OSX/Windows)
  ・・・・・
  ・・・・・

この「time.lua」を解読して、
FreeBASICに移植した。

関数は、現在時刻の取得1つだけで、名前は<紙>流の time_ とした。


1万分の1秒単位(100um単位)の時刻取得関数の実体は、
kernel32.dll に含まれている、GetSystemTimeAsFileTime ですネ。


それで、
ヘッダファイルを、_time.bi として作った:
Declare Sub GetSystemTimeAsFileTime_ Alias "GetSystemTimeAsFileTime"( Byval t As LongInt ptr )
' _ は“@4”が付くから。

' #inclib "kernel32" ・・・・・ これは、無くても可

Function time_( ) As Double
Dim tm_time as LongInt
Dim DELTA_EPOCH_IN_100NS As LongInt = 116444736000000000
GetSystemTimeAsFileTime_( @tm_time )
tm_time = ( tm_time - DELTA_EPOCH_IN_100NS ) / 1000 ' 100マイクロ秒単位
return tm_time / 10000.0 ' 実数化(秒.100u秒)
End Function


そして、
早速テストメイン:
' test_mS.bas
#include "_time.bi"

dim tm as double = time_() : Print ( tm )
これをコンパイルして、実行

  9_999_999_999.9999

の様に、表示された。( アンダバーは、見やすさのため )


確かに、1万分の1秒単位(100um単位)で取得できた。



本日はここまで。


FreeBASIC 学習は続く。


見ていただいた序でとは厚かましい限りですが、
お帰りに投票して頂けるとなお嬉しいです。 ⇒

190505
関連記事
スポンサーサイト



コメントの投稿

管理者にだけ表示を許可する

人気blog Ranking



最新記事
カレンダー
06 | 2021/07 | 08
- - - - 1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
月別アーカイブ
カテゴリ
最新コメント
検索フォーム
リンク
プロフィール

<紙>

Author:<紙>
ようこそ。
「パソコンヲタクの雑記帳」
もろもろなことを綴っています。
パソコン ヲタクってねくら?
画像は kami でなく kani です。

FC2 / i2i / Google




Google Analytics
ブックマーク