ちょっと調べたところ、VB.NET(2008)とDLLの間では、マネージドコードとアンマネージドコードの間でデータの受け渡しをするための宣言が必要ではないかという情報がありました。HAMLOG50.BASの中にある宣言を変える必要があるかもしれません。
自信は全然ありませんが、読み込み部分と更新部分の関数を書き換えるとすると…
Declare Function THW_read Lib "Hamlog50.dll" ( _
<MarshalAs(UnmanagedType.LPStruct)> h As TThLog, _
ByVal n As Long, ByVal i As Long) As Long
Declare Function THW_update Lib "Hamlog50.dll" ( _
<MarshalAs(UnmanagedType.LPStruct)> Th As TThLog, _
<MarshalAs(UnmanagedType.LPStruct)> Th2 As TThLog, _
ByVal r As Long, ByVal f As Long, m As Long) As Long
問う風にでもなるでしょうか?LPStructの辺が違うかもしれません。
いずれにしても、VB.NETの世界とDLLの世界のやり取りを行うための仕組みが何かしら必要だと思います。VB.NETに合わせて、THDLL2VB.DLLに当たる部分を作り直していただければなぁと思います。>作者様
> JO1SIM 出島さん、ありがとうございます。
>
> > rd = THW_read(u_th, u_Rno, 0)
> > rd = THW_read(u_th2, u_Rno, 0)
> > という風に変数間のコピーではなく、2回呼び出してみてはいかがでしょうか?
>
> この事は書かなかったのですが、すでにテスト済みでした。 SRI
> 改めて試しましたが結果は変化無しでした。