Описание тега structlayout
3
ответа
Использует неожиданное поведение FieldOffset
Я пытаюсь понять явное расположение структуры и наложение структуры, и я не вижу поведения, которое я ожидаю. Учитывая код ниже: class Program { static void Main(string[] args) { byte[] bytes = new byte[17]; bytes[0] = 0x01; // Age is 1 //IntField1 …
25 фев '11 в 02:49
0
ответов
Предупреждение FxCop не исчезнет
Объект этого класса будет передан в вызов API. Я реализовал первое предложение из предупреждения ниже: Чтобы снизить риск для безопасности, маршалируйте поле Resource.k__BackingField как Unicode, установив StructLayout.CharSet для "Resource" в CharS…
28 дек '17 в 16:52
1
ответ
Добавление атрибута StructLayout к типу F# с неявным конструктором
У меня есть: type Package = abstract member Date : int abstract member Save : unit -> unit [<type:StructLayout(LayoutKind.Sequential, Pack=1, CharSet=CharSet.Ansi)>] type Instant(date : int, value : int) = let mutable _date = date let mutab…
31 окт '12 в 09:19
1
ответ
Могу ли я убедиться, что resharper не меняет порядок полей в этом классе?
Я использую этот класс NetResource для отправки файлов на сетевой диск, и это выглядит так: [StructLayout(LayoutKind.Sequential)] public class NetResource { public ResourceScope Scope; public ResourceType ResourceType; public ResourceDisplayType Dis…
30 окт '18 в 13:31
1
ответ
Структура неправильно выровнена: System.TypeLoadException
Я пытаюсь создать следующую структуру в C#, это сложная структура, основанная на C, я пробовал большинство вариантов маршалинга, но я всегда получаю 'System.TypeLoadException'. (Дополнительная информация: не удалось загрузить тип "WindowsFormsApplic…
06 окт '14 в 21:12
1
ответ
LayoutKind.Sequential не используется, если в substruct есть LayoutKind.Explicit
При запуске этого кода: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Runtime.InteropServices; namespace StructLayoutTest { class Program { unsafe static void Main() { Console.WriteLine(IntPtr.Siz…
02 май '13 в 08:28
2
ответа
C# StructLayout Pack=?? для использования со значениями bool
В C# я создаю несколько различных структур, которые содержат 16 переменных типа bool. У меня будет несколько различных из этих структур, которые затем будут объединены с другими типами данных в более сложные структуры. Мне нужно, чтобы они обрабатыв…
31 авг '16 в 13:59
6
ответов
Почему LayoutKind.Sequential работает по-другому, если структура содержит поле DateTime?
Почему LayoutKind.Sequential работает по-другому, если структура содержит поле DateTime? Рассмотрим следующий код (консольное приложение, которое должно быть скомпилировано с включенным "unsafe"): using System; using System.Runtime.InteropServices; …
09 ноя '10 в 10:14
2
ответа
Как преобразовать фиксированный байт / символ [100] в управляемый символ [] в C#?
Каков наилучший способ преобразования фиксированного байта или символа [100] в управляемый символ [] в C#? Мне пришлось использовать арифметику с указателями, и мне интересно, есть ли более простой способ - что-то вроде memcpy или другого способа? u…
26 июл '09 в 18:55
3
ответа
Исправлен sbyte[] в строке C#
Я пытаюсь получить строку из памяти, используя StrucLayout а также FieldOffset Но у меня много проблем с пониманием того, как byte работает. Вот мой код банкомата: [StructLayout(LayoutKind.Explicit)] public unsafe struct InfoDetails { [FieldOffset(0…
18 май '18 в 07:22
2
ответа
PInvoke для DWORD-выровненных дескрипторов памяти
Я пытался написать эквивалент C# для ACCESS_DENIED_ACE структура, как определено в MSDN: typedef struct _ACCESS_DENIED_ACE { ACE_HEADER Header; ACCESS_MASK Mask; DWORD SidStart; } ACCESS_DENIED_ACE, *PACCESS_DENIED_ACE; куда SidStart является первым…
25 июл '12 в 10:07
1
ответ
Почему C# может справиться с этим явно идиотским продвижением объектов во время выполнения?
Мне очень нравится язык C#. Я просто играю вокруг, и никогда не буду использовать код ниже в производственном коде. Очевидно, что компилятор одурачен компоновкой структуры. Но почему получается, что строка в классе Super все еще может быть записана …
07 апр '17 в 14:20
2
ответа
Изменить структуру структуры из p/invoke
Я ищу рекомендации по изменению структуры struct/class объектов, возвращаемых / передаваемых в функцию a p/invoke. Я искал ответ на этот вопрос, но, возможно, я просто слишком устал, и я не ищу эффективно. Простейший пример, который я могу придумать…
08 ноя '12 в 08:46
3
ответа
Как можно не делать предположений о структурных макетах C++?
Я только что узнал от Bug в компиляторе VC++ 14.0 (2015)? что не следует делать предположения о том, как макет структуры окажется в памяти. Тем не менее, я не понимаю, как это часто встречается в коде, который я видел. Например, графический интерфей…
30 авг '16 в 02:34
1
ответ
Неопределенное поведение с полевым смещением
Я успешно удалил объект структуры из допустимого указателя с помощью функции PtrToStructure (в vb.NET), проблема в том, что поле "FrameRects" имеет недопустимые значения по сравнению со значениями, полученными из образца C++: код vb.NET: StructLayou…
30 июл '17 в 10:39
0
ответов
C# StructLayout Pack получить System.NullReferenceException, проблема выравнивания?
Прежде всего, я бы сказал, что я не застрял, потому что есть много обходных путей для меня! Лучшее из того, что мне больше не нужен пакет 1Byte:P Но, честно говоря, я довольно озадачен поведением. Я использую Unity, он отлично работает на Windows, н…
07 мар '14 в 14:29
2
ответа
C# StructLayout. Явный вопрос
Я пытаюсь понять, почему второй пример ниже работает без проблем, но первый пример дает мне исключение ниже. Мне кажется, что оба примера должны дать исключение на основе описания. Кто-нибудь может просветить меня? Необработанное исключение: System.…
25 июл '09 в 19:05
7
ответов
Есть ли альтернатива для атрибута "Pack" StructLayout в Compact Framework?
Я хотел бы сделать следующее: [StructLayout(LayoutKind.Sequential, Pack = 1)] public struct SomeStruct { public byte SomeByte; public int SomeInt; public short SomeShort; public byte SomeByte2; } Есть ли альтернатива, так как Pack не поддерживается …
14 июл '09 в 19:54
2
ответа
Массивы, разделяющие память в.NET4.0 - это возможно с помощью отражений или StructLayout?
У меня есть огромные переходные массивы, созданные быстро. Некоторые хранятся, некоторые - GC-d. Это дефрагментирует кучу, и приложение потребляет ок. В 2,5 раза больше памяти, чем было бы действительно необходимо в результате OutOfMemoryException. …
14 июн '13 в 08:42
2
ответа
Должен ли я использовать LayoutKind.Auto для своих структур, если они не работают в COM Interop?
По умолчанию структуры в C# реализованы с [StructLayout( LayoutKind.Sequential )] по причинам, в основном утверждающим, что эти типы объектов обычно используются для взаимодействия COM, и их поля должны оставаться в том порядке, в котором они были о…
29 ноя '09 в 19:53