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;
間違ってたらごめんね
私も、昔同じような壁にぶつかりました
Longで対応できたような気がします。
参考になりましょうか?
緑のバイクさん:
http://homepage3.nifty.com/midori_no_bike/CS/index.html
お返事おくれてしまって申し訳ありません。
親切なご回答有難うございます。
早速試してみたいと思います。
有難うございます。
ツイート | ![]() |