B
Bob Simoneau
I am having a hard time with delegates, but here I must pass a delegate and
a pointer to a structure. I am totally lost. Passing the pointer to
rlistsys_resp_func and RLISTSYS_DETAIL is where I am lost. Any hint would
be highly appreciated.
C Header:
_declspec(dllexport) extern void rlistsys(RLISTSYS_PARMS *rlistsys_parms,
RLISTSYS_RESP *rlistsys_resp, void (*rlistsys_resp_func)(RLISTSYS_DETAIL
*));
VB.NET
Dim RLISTSYS_DETAIL As New TRLISTSYS_DETAIL
Dim objDelegate As RLISTSYS_FUNC
objDelegate = AddressOf RLISTSYS_FUNC_RUN
rlistsys(RLISTSYS_PARMS, RLISTSYS_RESP, objDelegate, RLISTSYS_DETAIL)
Module1
Public Delegate Sub RLISTSYS_FUNC(ByRef RLISTSYS_DETAIL As
TRLISTSYS_DETAIL)
Public Sub RLISTSYS_FUNC_RUN(ByRef RLISTSYS_DETAIL As TRLISTSYS_DETAIL)
frmMain.grd.Rows.Add(CleanInput(RLISTSYS_DETAIL.name), CleanInput
(RLISTSYS_DETAIL.description))
End Sub
Public Declare Function rlistsys Lib "remotapi.dll" (ByRef RLISTSYS_PARMS
As TRLISTSYS_PARMS, ByRef RLISTSYS_RESP As TRLISTSYS_RESP, ByRef
objDelegate As RLISTSYS_FUNC, ByRef RLISTSYS_DETAIL As TRLISTSYS_DETAIL) As
Integer
Error:
System.ArgumentException was unhandled
Message="Type could not be marshaled because the length of an embedded
array instance does not match the declared length in the layout."
Source="Chainlinkwork"
StackTrace:
at Chainlinkwork.Module1.rlistsys(TRLISTSYS_PARMS& RLISTSYS_PARMS,
TRLISTSYS_RESP& RLISTSYS_RESP, RLISTSYS_FUNC& objDelegate, TRLISTSYS_DETAIL&
RLISTSYS_DETAIL)
a pointer to a structure. I am totally lost. Passing the pointer to
rlistsys_resp_func and RLISTSYS_DETAIL is where I am lost. Any hint would
be highly appreciated.
C Header:
_declspec(dllexport) extern void rlistsys(RLISTSYS_PARMS *rlistsys_parms,
RLISTSYS_RESP *rlistsys_resp, void (*rlistsys_resp_func)(RLISTSYS_DETAIL
*));
VB.NET
Dim RLISTSYS_DETAIL As New TRLISTSYS_DETAIL
Dim objDelegate As RLISTSYS_FUNC
objDelegate = AddressOf RLISTSYS_FUNC_RUN
rlistsys(RLISTSYS_PARMS, RLISTSYS_RESP, objDelegate, RLISTSYS_DETAIL)
Module1
Public Delegate Sub RLISTSYS_FUNC(ByRef RLISTSYS_DETAIL As
TRLISTSYS_DETAIL)
Public Sub RLISTSYS_FUNC_RUN(ByRef RLISTSYS_DETAIL As TRLISTSYS_DETAIL)
frmMain.grd.Rows.Add(CleanInput(RLISTSYS_DETAIL.name), CleanInput
(RLISTSYS_DETAIL.description))
End Sub
Public Declare Function rlistsys Lib "remotapi.dll" (ByRef RLISTSYS_PARMS
As TRLISTSYS_PARMS, ByRef RLISTSYS_RESP As TRLISTSYS_RESP, ByRef
objDelegate As RLISTSYS_FUNC, ByRef RLISTSYS_DETAIL As TRLISTSYS_DETAIL) As
Integer
Error:
System.ArgumentException was unhandled
Message="Type could not be marshaled because the length of an embedded
array instance does not match the declared length in the layout."
Source="Chainlinkwork"
StackTrace:
at Chainlinkwork.Module1.rlistsys(TRLISTSYS_PARMS& RLISTSYS_PARMS,
TRLISTSYS_RESP& RLISTSYS_RESP, RLISTSYS_FUNC& objDelegate, TRLISTSYS_DETAIL&
RLISTSYS_DETAIL)