Вопросы по теме 'unsafe'

С#: обычно конвертировать неуправляемый массив в управляемый список
Я имею дело с набором нативных функций, которые возвращают данные через динамически распределяемые массивы. Функции принимают в качестве входных данных ссылочный указатель, а затем указывают его на результирующий массив. Например: typedef...
2771 просмотров
schedule 11.12.2022

C#: получение и использование IntPtr* посредством отражения
В настоящее время я работаю над некоторым кодом, который отражает структуры, которые возвращаются из вызовов в собственную dll. Некоторые структуры содержат поля IntPtr*, указывающие на массивы указателей, оканчивающихся нулем. Эти поля требуют...
1877 просмотров
schedule 19.12.2023

Истинно небезопасная производительность кода
Я понимаю, что небезопасный код больше подходит для доступа к таким вещам, как Windows API, и для небезопасного приведения типов, чем для написания более производительного кода, но я хотел бы спросить вас, замечали ли вы когда-нибудь значительное...
26388 просмотров
schedule 02.11.2022

Сопоставление структур памяти в С#, оно того стоит? Или есть лучший способ
Я отправляю несколько пакетов данных по сети, и они приходят в байтах [] с, скажем, структура [целое, целое, байт, целое] Если бы это был С++, я бы объявил struct* и указал на byte[]. Я делаю этот проект на С#, и я не уверен, стоит ли оно того...
884 просмотров
schedule 27.05.2024

строки в .net меняются?? есть какой-то баг?
Я написал функцию Reverse, чтобы перевернуть строку в .net, используя указатели в небезопасном контексте. Мне это нравится. Я придаю «приветствую» и «х» одинаковое значение. Я наоборот приветствую, к моему удивлению, x тоже переворачивается....
88 просмотров
schedule 31.01.2024

EntryPointNotFoundException TaskDialog при запуске приложения, но позже работает нормально
У меня есть источник TaskDialog непосредственно из пакета WindowsAPI для .NET (оболочка), но всякий раз, когда я пытаюсь открыть TaskDialog прямо в области static void Main() моей программы, он выдает исключение EntryPointNotFoundException. Однако...
424 просмотров

C# Char* в строку
Я много огляделся и не могу найти решение для чего-либо похожего на то, что я делаю. У меня есть два приложения: собственное приложение C++ и управляемое приложение C#. Приложение C++ выделяет пул байтов, которые используются в диспетчере памяти....
4539 просмотров
schedule 05.05.2024

Прямой доступ к памяти для базовых полевых данных
Я ищу способ избежать накладных расходов FieldInfo.Get/SetValue и получить доступ к памяти напрямую для нескольких избранных, известных заранее примитивных типов. (В частности, я стараюсь избегать выделения памяти в нашем пользовательском...
1485 просмотров
schedule 18.03.2024

Форма MS Access не работает после включения небезопасного контента
У меня есть проект MS Access, который был разработан в MS Access 97. Я успешно преобразовал его в MS Access 2016 (хотя это была длинная история). Все выглядит нормально, но я заметил очень странное поведение. Когда пользователь впервые открывает...
369 просмотров
schedule 25.04.2024

Как разрешить «Небезопасный код» в версии Rider для Mac?
Я не знаю, могу ли я включить эту опцию при использовании Rider 2017.2.1 (версия для Mac). Кто-нибудь может посоветовать? Я не могу найти эту опцию отображаемой вообще. Я гуглил: настроить свойства конфигураций сборки проекта В окне...
649 просмотров
schedule 07.04.2024

Каков идиоматический способ перебора байтов целого числа в Rust?
Я попробовал такой фрагмент кода для перебора байтов u64 : let mut message: u64 = 0x1234123412341234; let msg = &message as *mut u8; for b in 0..8 { // ...some work... } К сожалению, Rust не поддерживает такое C-подобное...
376 просмотров
schedule 15.02.2024

Небезопасная реализация очереди
Я пытаюсь создать небезопасную, но более производительную ArrayQueue реализацию. После того, как я добавил тестовые примеры, один из них выдает ошибку сегментации. Вот моя простая минимальная реализация: use std::mem; pub struct...
79 просмотров

Почему необработанные части не соответствуют ни одному из порядков байтов?
Я пытаюсь максимально оптимизировать операцию, выполняемую над срезами u32 из массивов u8 . Таким образом, я тестирую различные варианты (для циклов, итераторов, использования контейнера ByteOrder и т. д.). В рамках этих тестов я также хотел...
57 просмотров
schedule 21.10.2022

Как изменить конкретный символ в строке?
У меня есть строка, и я хочу обновить значение символа в определенном индексе строки. Я знаю, что индекс, который я собираюсь обновить, существует в строке из-за моего типа ввода. Моей первой идеей было получить изменяемую ссылку на срез в нужном...
47 просмотров
schedule 30.11.2023

Есть ли безопасный способ временно получить принадлежащее значение из изменяемой ссылки в Rust?
Я работаю с двумя отдельными функциями. Первый берет принадлежащий экземпляр структуры, а затем возвращает его. Второй принимает изменяемую ссылку, но должен использовать первую функцию. // This structure is not `Clone`. struct MyStruct;...
60 просмотров
schedule 15.11.2022