Почему вызов WinAPI-функции выбрасывает AccessViolationException?

112
21 ноября 2019, 12:30
[DllImport("advapi32.dll", SetLastError = true)]
        static extern int SetEntriesInAcl(
    int cCountOfExplicitEntries,
    ref EXPLICIT_ACCESS pListOfExplicitEntries,
    IntPtr OldAcl,
    out IntPtr NewAcl);
private void SomeMethod()
{
    EXPLICIT_ACCESS explicit_access = new EXPLICIT_ACCESS();
    // заполнение структуры explicit_access  значениями
    IntPtr pDACL = IntPtr.Zero;
    SetEntriesInAcl(1, ref explicit_access, IntPtr.Zero, out pDACL);
}

При вызове функции SetEntriesInAcl вылетает AccessViolationException: attempted to read or write protected memory. Изолировала этот код и поняла, что если он выполняется под .NET 4.6.2, то нормально отрабатывает. А вот если выполняется под версией 4.0, то вылетает исключение. Поменять целевую платформу не могу. Что сделать, чтобы данная функция успешно отрабатывала в моём проекте?

READ ALSO
Получить атрибут внешней сборки (c#)

Получить атрибут внешней сборки (c#)

Есть два файла: библиотека и сама программаВ библиотеке находится информация в виде настраиваемого атрибута M (содержится в ещё одной библиотеке...

137
C# Многомерный ассоциативный массив или перегрузка свойств

C# Многомерный ассоциативный массив или перегрузка свойств

Те кто изучал java script или php, а потом переходили на C# наверное меня поймутКак они бедные обходятся без многомерных ассоциативных массивов без...

144
C# - Фильтр в эксель с использованием цикла

C# - Фильтр в эксель с использованием цикла

Подскажите как можно сделать следующие:

125
Как вставить пробелы?

Как вставить пробелы?

У меня есть текст в RichTextBox, мне надо чтоб считывались все пробелы(если у меня 2 пробела, то они не считывались как один)Это мне надо для выравнивания...

113