c # pinvoke структура маршала - PullRequest
0 голосов
/ 30 апреля 2010

У меня есть неуправляемая структура, которую я бы хотел упаковать в c #, которая выглядит примерно так:

struct DateTimeStruct{
   double datetimestamp;
};   

struct MyStruct{
   char firstname[40];
   char lastname[40];
   DateTimeStruct bday;
   unsigned integer bool1;
   int val1;
};

Что такое правильное объявление c #?

1 Ответ

1 голос
/ 30 апреля 2010

Структура не проблема, она будет правильно распределена как есть.

    [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)]
    struct MyStruct{
        [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 40]
        string firstname;
        [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 40]
        string lastname;
        DateTimeStruct bday;
        uint bool1;
        int val1;
    }

Конечно, вам нужно преобразовать double в соответствующее значение DateTime. Как это закодировано, не понятно из вашего вопроса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...