[ 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

[ meia | 考え方とか仕様 | VB呼び出し | 関数取説 | dllの中身 | ダウンロード ]