En C# 4.0, dire que j'aiC#: Convertir Liste des struct simples à octet []
List<HSZPAIR> myList
avec trois éléments où la struct HSZPAIR est définie par:
[StructLayout(LayoutKind.Sequential)]
public struct HSZPAIR
{
public IntPtr hszSvc;
public IntPtr hszTopic;
}
Comment puis-je créer un tableau d'octets pour toute la myList? En C++, vous pouvez simplement convertir un tableau de structures en un tableau d'octets. Je ne suis pas sûr de savoir comment faire ça en C#.
J'utilise une ancienne fonction API Windows dans la bibliothèque DDEML qui nécessite un tableau d'octets et le nombre d'éléments dans le tableau en tant qu'arguments. Si vous êtes intéressé à plus d'arrière-plan, la fonction API est:
[DllImport("user32.dll", EntryPoint="DdeCreateDataHandle", CharSet=CharSet.Ansi)]
public static extern IntPtr DdeCreateDataHandle(int idInst, byte[] pSrc, int cb, int cbOff, IntPtr hszItem, int wFmt, int afCmd);
Here is it's documentation on MSDN. L'argument pSrc est le tableau d'octets des structures HSZPAIR. La taille du tableau est l'argument cb.
J'ai réussi à convertir une seule structure en un tableau d'octets, étant donné le tutoriel à http://www.developerfusion.com/article/84519/mastering-structs-in-c/. Convertir une liste entière de structures en un tableau d'octets est ce qui me lance pour une boucle. – dmjones