LIBRARY EXPORTS CreateAlgorithm @1 ; アルゴリズムへのハンドルを作成します。 DestroyAlgorithm @2 ; アルゴリズムを破棄します。 InitAlgorithm @3 ; アルゴリズムを初期化します。 InputData @4 ; アルゴリズムへデータを入力します。 GetHashLength @5 ; ハッシュのサイズをバイト数で取得します。 GetHash @6 ; 入力されたデータからハッシュを取得します。 GetHashTextLength @7 ; ハッシュ文字列の文字列長をバイト数で取得します。 GetHashText @8 ; 入力されたデータからハッシュ文字列を取得します。
これらのコードは普段 VB.NET を使用していない作者が一度も実行・コンパイルすることなく想像に頼って書いたコードです。 そこまで大きく的から外れているとも思ってはいませんが、この書き方を推奨するものでも動作を保証するものでもありません。 むしろ「VB.NET で、そうは書かない」といった点を御指摘いただけますと大変うれしく思います。 (2007/09/14)
Declare Function CreateAlgorithm() As System.IntPtr
Declare Function DestroyAlgorithm( ByVal hAlgorithm As System.IntPtr ) As System.UInt32
Declare Function InitAlgorithm( ByVal hAlgorithm As System.IntPtr ) As System.UInt32
Declare Function InputData( ByVal hAlgorithm As System.IntPtr, ByVal data As Long, ByVal length As Long ) As System.UInt32
Declare Function GetHashLength( ByVal hAlgorithm As System.IntPtr ) As System.Int32
Declare Function GetHash( ByVal hAlgorithm As System.IntPtr, ByVal buffer As System.IntPtr, ByVal bufsize As System.Int32 ) As System.UInt32
Declare Function GetHashTextLength( ByVal hAlgorithm As System.IntPtr ) As System.Int32
Declare Function GetHashText( ByVal hAlgorithm As System.IntPtr, ByVal buffer As System.String, ByVal bufsize As System.Int32 ) As System.UInt32
これらのコードは普段 VB.NET を使用していない作者が一度も実行・コンパイルすることなく想像に頼って書いたコードです。 そこまで大きく的から外れているとも思ってはいませんが、この書き方を推奨するものでも動作を保証するものでもありません。 むしろ「VB.NET で、そうは書かない」といった点を御指摘いただけますと大変うれしく思います。 (2007/09/14)
' Declare Function CreateAlgorithm Lib "md5.dll" () As System.IntPtr Declare Function DestroyAlgorithm Lib "md5.dll" (ByVal hAlgorithm As System.IntPtr) As System.UInt32 Declare Function InitAlgorithm Lib "md5.dll" (ByVal hAlgorithm As System.IntPtr) As System.UInt32 Declare Function InputData Lib "md5.dll" (ByVal hAlgorithm As System.IntPtr, ByVal data As System.String, ByVal length As System.Int32) As System.UInt32 Declare Function GetHashText Lib "md5.dll" (ByVal hAlgorithm As System.IntPtr, ByVal buffer As System.String, ByVal bufsize As System.Int32) As System.UInt32 Declare Function GetHashTextLength Lib "md5.dll" (ByVal hAlgorithm As System.IntPtr) As System.UInt32 Sub Main() Dim bufsize As System.UInt32 ' Dim result As System.UInt32 ' Dim hAlgorithm As System.IntPtr ' アルゴリズムへのハンドル Dim text As System.String ' ハッシュ値を文字列化したもの ' アルゴリズムの取得 hAlgorithm = CreateAlgorithm() If hAlgorithm = 0 Then MsgBox("error! CreateAlgorithm()") End If ' アルゴリズムの初期化 result = InitAlgorithm(hAlgorithm) If result <> 0 Then MsgBox("error! InitAlgorithm()") End If ' ここでハッシュ化したいデータを入力する result = InputData(hAlgorithm, "sample text", Len("sample text")) If result <> 0 Then MsgBox("error! GetHashText()") End If ' ハッシュ文字列の取得 bufsize = 1 + GetHashTextLength(hAlgorithm) text = Space(bufsize) result = GetHashText(hAlgorithm, text, bufsize) If result <> 0 Then MsgBox("error! GetHashText()") End If ' アルゴリズムの破棄 result = DestroyAlgorithm(hAlgorithm) If result <> 0 Then MsgBox("error! DestroyAlgorithm()") End If ' ハッシュ値の表示 MsgBox(text) End Sub
水無瀬 優 postmaster@katsura-kotonoha.sakura.ne.jp
同人ダウンロード販売|DL.Getchu.com