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/おきてがみ


おきてがみ
最新記事
カレンダー
08 | 2019/09 | 10
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 - - - - -
月別アーカイブ
カテゴリ
最新コメント
検索フォーム
リンク
プロフィール

<紙>

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

カウンター(fc2、i2i) /Google Analytics


i2i(from 2010-08-24)
Total =
Today  =  
Yesterday=
アンチエイジング

Google Analytics
ブックマーク