将指针传递到通用结构
问题描述:
我必须与来自C#的C函数接口 该函数通过网络发送消息。将指针传递到通用结构
这里是C#我的工作定义:
delegate void SendNetMessageDelegate(uint messageCode, ref MessageData messageData, uint messageSize);
和MessageData定义这样的:
[StructLayout(LayoutKind.Sequential)]
internal struct MessageData { ... }
这些定义工作好为止。
问题是,有时我需要与另一个有效载荷调用相同的功能。 这意味着我将不得不作出另一位代表说以“OtherMessageData”结构,而不是“MessageData”
所以我得再添SendNetMessageDelegate是另需结构作为参考。
有没有更简单的方法? 所以我可以调用SendNetMessage(messageCode,裁判AnyStructHere messageData,MESSAGESIZE)
我试图改变参数类型为“对象”,然后我的铸造结构反对意见,但没有奏效...
答
如何仿制药
delegate void SendNetMessageDelegate<TPayload>(uint messageCode, ref TPayload payload, uint messageSize);
然后我会用这样的委托:SendNetMessageDelegate SendNetMessageThatTakesOtherMessageData = ...; 但这样我仍然必须做出多个定义。 我想有一个函数定义,其中包含所有结构。那可能吗? –
riki
2012-01-18 02:46:32