Riverside Learning LABO(Skill/Idea/Code)

よりよいシステムのため工学系と人間系の学習下書きメモ

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, _
ByVal objStructSample() As StructSample _
) As Integer

とも描ける。
ByValだがOut属性指定で変更内容が有効になる。