VB.NETでAnyの宣言をするには?


VB.NET初心者  2006-02-09 19:26:01  No: 94087

OS(XP)VB.NET2003で開発をしています。
共有メモリを使用し、シリアル通信をしようとしています。
以前VB6.0で開発実績のあるDLLを使用したいのですが、
Declareの宣言文でエラーとなり、色々調べてみたのですが、
解決できません。Anyの宣言でエラーとなります。
どなたかご教授ください。

<VB6.0>のサンプル
Declare Function WriteSMemory Lib "SMemory.dll" (ByVal smem_hnd As Integer, lpData As Any, ByVal Index As Integer, ByVal haita_flag As Integer, ByVal haita_timer As Long) As Integer

Type TEST
    a_int As Integer
    b_str As String * 10
    c_lng As Long
    d_res As String * 16
End Type

    Dim w_dat As TEST

    For Index = 1 To 3
        w_dat.a_int = CInt(txtStructInt(Index - 1).Text)
        w_dat.b_str = txtStructStr(Index - 1).Text
        w_dat.c_lng = CLng(txtStructLng(Index - 1).Text)
        ret = WriteSMemory(g_hnd2, w_dat, Index, False, 0)
        If ret <> 0 Then
            MsgBox "書込みエラー"
        End If
    Next Index

<DLLのC#の宣言箇所>
DllExport short StdCall WriteSMemory( short access_num, LPVOID lpData, short smem_index, BOOL haita_flag, long haita_timer )
{
  return WriteSMemoryCom( access_num, lpData, smem_index, haita_flag, haita_timer );
}

short WriteSMemoryCom( short access_num, LPVOID lpData, short smem_index, BOOL haita_flag, long haita_timer )
{
    LPVOID lp;
  DWORD ret_m;
  DWORD mutex_timer;
//add start 1999/05/09
  DWORD written_size;
    LPVOID lpWritePoint;


はてな  2006-02-10 07:40:29  No: 94088

間違ってたらごめんね
私も、昔同じような壁にぶつかりました

Longで対応できたような気がします。


ガッ  2006-02-10 08:32:16  No: 94089

参考になりましょうか?
緑のバイクさん:
http://homepage3.nifty.com/midori_no_bike/CS/index.html


VB.NET初心者  2006-02-13 18:37:13  No: 94090

お返事おくれてしまって申し訳ありません。
親切なご回答有難うございます。
早速試してみたいと思います。
有難うございます。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加