将指针传递到通用结构

问题描述:

我必须与来自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); 
+0

然后我会用这样的委托:SendNetMessageDelegate SendNetMessageThatTakesOtherMessageData = ...; 但这样我仍然必须做出多个定义。 我想有一个函数定义,其中包含所有结构。那可能吗? – riki 2012-01-18 02:46:32