[ meia | 考え方とか仕様 | VB呼び出し | 関数取説 | dllの中身 | ダウンロード ]
VB呼び出し
以下が、VBでの宣言です。この宣言をする事により、meia.dllの関数を、VB関数のように扱う事が出来ます。 ByValが通常の数値の受け渡しで、ByRefは参照渡し。C的に言うと、前者が、通常数値で、後者がポインタである。 ポインタをうまく使うと、配列を、一個の変数のように扱えたり、関数の戻り値として、利用出来たりする。 この辺りは、うんざりするほど解説本があるのでそちらを参照のこと。 また、文字列型は、Cではポインタ型であるが、VBでは通常型であるので、ByValで呼び出しが可能。 "ストリームから保存"の項目はmeiak.dllの宣言です。 このように、直接meiak.dllを呼び出す事も出来ます。 ' Openim 開く Public Declare Function Openim Lib "Meia.dll" _ (ByVal fname As String, ByVal mx As Integer, ByVal my As Integer, _ ByVal id As Integer, ByRef id_mon As Double) As Integer 'ストリームから保存 Public Declare Function Savek Lib "Meiak.dll" _ (ByVal fname As String, ByVal mx As Integer, ByVal my As Integer, _ ByRef id_mon As Double) As Integer 'ストリームからインフォメーションファイルと一時画像ファイル作成。 Public Declare Function Openxim Lib "Meia.dll" _ (ByVal mx As Integer, ByVal my As Integer, _ ByVal id As Integer, ByRef id_mon As Double) As Integer 'idから一時画像ファイルの画像を、id_monに返す。 Public Declare Function Toutim Lib "Meia.dll" _ (ByVal id As Integer, ByRef id_mon As Double) As Integer ' Saveim セーブ Public Declare Function Saveim Lib "Meia.dll" _ (ByVal fname As String, ByVal id As Integer, ByRef id_mon As Double) As Integer ' Xyretid mx,my返す Public Declare Function Xyretid Lib "Meia.dll" _ (ByVal id As Integer, ByRef mx As Integer, ByRef my As Integer) As Integer ' Conim コントラスト改善 Public Declare Function Conim Lib "Meia.dll" _ (ByVal stpix As Integer, ByVal enpix As Integer, ByVal id As Integer, ByRef id_mon As Double) As Integer ' Medim メディアン Public Declare Function Medim Lib "Meia.dll" _ (ByVal id As Integer, ByRef id_mon As Double) As Integer ' Dpim 差分 Public Declare Function Dpim Lib "Meia.dll" _ (ByVal id1 As Integer, ByVal id2 As Integer, ByVal id As Integer, ByRef id_mon As Double) As Integer ' Segmim 二値化 Public Declare Function Segmim Lib "Meia.dll" _ (ByVal thr As Integer, ByVal id As Integer, ByRef id_mon As Double) As Integer ' Rofim オーバー値補正 Public Declare Function Rofim Lib "Meia.dll" _ (ByVal id As Integer, ByRef id_mon As Double) As Integer ' Edgeim エッジ Public Declare Function Edgeim Lib "Meia.dll" _ (ByVal id As Integer, ByRef id_mon As Double) As Integer ' Dmim ゴミ消し Public Declare Function Dmim Lib "Meia.dll" _ (ByVal id As Integer, ByRef id_mon As Double) As Integer ' Rdim 反転 Public Declare Function Rdim Lib "Meia.dll" _ (ByVal id As Integer, ByRef id_mon As Double) As Integer ' Undoim アンドゥ Public Declare Function Undoim Lib "Meia.dll" _ (ByVal id As Integer, ByRef id_mon As Double) As Integer
次に実際の使用方法です。
Call Openim(mDia!CommonDialog.FileName, Val(mx), Val(my), id, id_mon(0))
↑こちらはcallによる呼び出しです。
関数そのものの戻り値は参照出来ません。
If Openim(mDia!CommonDialog.FileName, Val(mx), Val(my), id, id_mon(0)) = 0 Then
ここに処理を書く。 関数の戻り値はエラー番号である。
この方式だと、関数そのものの戻り値を参照出来る。
End If