CvsMks : N88-BASIC←→IEEE 浮動小数点表現形式の変換/還元
使用法(1) Visual Basic から
Visual Basic 6.0 で作成するアプリケーション・プログラムで、この DLL
を使うには、何らかの標準モジュールに使用宣言を行ないます。要領は Win32API
を使うのと同じです。ファイル例を下に示します。
DLL所収関数使用のための宣言(ファイル例 CvsMks.Bas)
Attribute VB_Name = "CvsMks"
Option Explicit
'********************************************************************
' file name : CvsMks.Bas
' purpose : N88-BASIC <--> IEEE 浮動小数点表現形式の変換/還元
' CvsMks.DLL 使用のための関数参照宣言
'
' Version 0.2 / October 31, 2003
'--------------------------------------------------------------------
' history : V0.1/1999-10-27/ 新規作成。
' : V0.2/2003-10-31/ ホームページ用コメント改変。
'********************************************************************
'********************************************************************
' CvsMks.Dll 内関数 参照宣言
'********************************************************************
Public Declare Function n88CVS Lib "CvsMks.Dll" _
(ByRef A As Any) As Single
Public Declare Function n88CVD Lib "CvsMks.Dll" _
(ByRef B As Any) As Double
Public Declare Function n88MKS Lib "CvsMks.Dll" _
(ByVal C As Single, ByRef D As Any) As Long
Public Declare Function n88MKD Lib "CvsMks.Dll" _
(ByVal E As Double, ByRef F As Any) As Long
|
アプリケーション側からの本DLL所収関数の使い方を下に例示します。なお、N88-BASIC
形式でのファイルに対するアクセス単位は、単精度4バイト単位、倍精度8バイト単位というわけではなく、1バイトずつであるにご注意ください。
使用例(1) 読み出し
'ファイルからの読み出し
Dim temp(8) As Byte
Dim flt As Single
Dim dbl As Double
Open ReadFile For Binary Access Read As #FileNumber
'----- Single -----
For i = 0 To 3
Get #1, , temp(i)
Next i
flt = n88CVS(temp(0))
'----- Double -----
For i = 0 To 7
Get #1, , temp(i)
Next i
dbl = n88CVD(temp(0))
|
使用例(2) 書き出し
'ファイルへの書き出し
Dim tempS(0 To 3) As Byte
Dim tempD(0 To 7) As Byte
Dim ptr As Long 'Dummy = not use
Open WriteFile For Binary Access Write As #FileNumber
'----- Single (下注 *1)-----
ptr = n88MKS(-123.456, tempS(0)): Put #FileNumber, , temp
'----- Double (下注 *2) -----
ptr = n88MKD(-987.654, tempD(0)): Put #FileNumber, , temp
|
*1. 単精度実数の値範囲は次の通り。
(N88) -1.70141E +38 〜 1.70141E +38
(VB) -3.402823E+38 〜 3.402823E+38
よって、範囲チェックを行なった上で(狭い N88-BASICの範囲内で)、 n88MKS
を呼んでください。
*2. 倍精度実数の値範囲は次の通り。
(N88) -1.701411834604692D+38 〜+1.701411834604692D+38
(VB) -1.797693134862316D+308〜+1.797693134862316D+308
よって、範囲チェックを行なった上で(狭い N88-BASICの範囲内で)、n88MKD
を呼んでください。
「使用法(2) Visual C から」へ進む
「CvsMks 概要」へ戻る
「役立たない?/プログラム等」へ戻る
 |
darokugawa@master.email.ne.jp |
このページ最終更新日 : October 31, 2003 |
|