|
49 / 49 / 2
Регистрация: 17.07.2011
Сообщений: 318
|
|
Маршалинг данных21.01.2014, 19:54. Показов 1494. Ответов 3
Метки нет (Все метки)
Необходимо передавать массивы данных из управляемого кода в неуправляемый. Почитал про атрибуты [in] [out], но я понял так, что независимо от операции производится копирование данных всегда, видимо в целях безопасности , если я не прав, поправьте.
Вариант второй, не применять атрибуты вообще, а отправлять ссылку на зафиксированные данные через GCHandle или оператором fixed в неуправляемый код, в таком случае избегу ли я копирования данных? А так же интересно если чтение происходит из управляемой памяти, может ли неуправляемый код вносить изменения в эту память? Пишу всё это для работы с opengl, там все методы подразумевающие получение данный в графическую библиотеку снабжены модификатором const. В принципе копирование данных происходит из оперативной памяти в графическую, так что очень не хотелось бы дублировать операцию. Спасибо.
0
|
|
| 21.01.2014, 19:54 | |
|
Ответы с готовыми решениями:
3
Маршалинг структуры C# --> C Маршалинг и структура Маршалинг C++ wchar_t** в C# |
| 28.01.2014, 22:42 | |
|
Если только для OpenGL, то пишите на С++ и будет Вам счастье. Вот здесь можно найти подробные уроки на эту тему, в которых, за одно, и о некоторых особенностях C++ и WinApi рассказывается. А если всё таки нужно потом всем этим на C# управлять, можно просто создать проект C++/CLR, который может состоять из управляемых классов, методов и данных, но при этом свободно (без всякого копирования) обращаться с неуправляемыми. Кстати, библиотека dll написанная на C++/CLR сишарпом проглатывается как родная.
1
|
|
|
Почетный модератор
|
||||
| 28.01.2014, 22:53 | ||||
Сообщение было отмечено danrusm как решение
РешениеДобавлено через 3 минуты Соглашусь с НеСказочник, что прослойка для нативных библиотек в виде C++/CLI в большинстве случаев получается в разы проще (с учетом знания C++/CLI) и красивее чем на C#.
1
|
||||
|
49 / 49 / 2
Регистрация: 17.07.2011
Сообщений: 318
|
|
| 29.01.2014, 20:48 [ТС] | |
|
У меня уже есть практика использования обоих подходов, просто на данный момент делаю парсер-конвертер
glext в класс c#, будет очень удобно, а так же не нужно ждать обновлений Tao и тому подобных.
0
|
|
| 29.01.2014, 20:48 | |
|
Помогаю со студенческими работами здесь
4
Маршалинг string
Маршалинг Waveform Audio Маршалинг структур. Размер string Маршалинг структур: динамическое управление размером Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Оттенки серого
Argus19 18.03.2026
Оттенки серого
Нашёл в интернете 3 прекрасных модуля:
Модуль класса открытия диалога открытия/ сохранения файла на Win32 API;
Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
|
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога
Финальные проекты на Си и на C++:
finish-rectangles-sdl3-c. zip
finish-rectangles-sdl3-cpp. zip
|
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие.
Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
|
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ВВЕДЕНИЕ
Выполняя задание на управление насосной группой заполнения резервуара,. . .
|
|
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
|
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога
Финальные проекты на Си и на C++:
hello-sdl3-c. zip
hello-sdl3-cpp. zip
Результат:
|
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога
MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
|
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд.
Даже если у вас. . .
|