駄六川の草庵 トップページ > 役立たない?/プログラム等 > CvsMks > VB使用例
ごあいさつ
メニューごあいさつ、ご案内
たわごと
メニュー情報処理とビジネス
メニューその他
役立たない?
メニュープログラム等
メニュー英略語集
メニュー友人・知人リンク
プロフィール等
メニュープロフィール
メニューこのサイトについて

メニュー会員のページ

メニュー近辺のご案内

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 darokugawa@master.email.ne.jp このページ最終更新日 : October 31, 2003