VB.NETからC言語DLLを使う(属性)
VB側で構造体配列として宣言した変数を
CのDLLに渡したいときには属性指定が必要である。
【例】
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
VB側構造体
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Public Structure StructSample
Dim mem1 As Integer
Dim mem2 As Double
End Structure
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
VB側宣言
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Public objStructSample() As StructSample
objStructSample変数をCのDLLに渡して、
C側で構造体の中を変更してもらいたい場合のインターフェースメモ
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
VB側C関数定義
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Private Declare Function SAMPLE_FUNC Lib "Sample.dll" Alias "sample_func" ( _
ByRef entryNo As Integer, _
) As Integer
※
ByValだがOut属性指定で変更内容が有効になる。