|
-15 / 10 / 6
Регистрация: 03.10.2012
Сообщений: 532
|
||||||||||||
Передача экземпляра обьекта в функцию dllexport14.05.2017, 16:03. Показов 2112. Ответов 12
Метки нет (Все метки)
Здравствуйте, столкнулся с такой проблемой. Вот рабочий код
Добавлено через 5 часов 38 минут Что? Совсем не кто не знает? На столько не тривиальная задача?
0
|
||||||||||||
| 14.05.2017, 16:03 | |
|
Ответы с готовыми решениями:
12
Передача в функцию обьекта Передача свойств обьекта в функцию openGL Передача экземпляра собственного класса в функцию |
|
-15 / 10 / 6
Регистрация: 03.10.2012
Сообщений: 532
|
|
| 17.05.2017, 14:45 [ТС] | |
|
Ребята! Проблема актуальна! РЕБЯТА!
Решил проблему с этой ошибкой но проблема появилась в другом - C# мне говорит что нет такой точки входа.
0
|
|
|
Администратор
|
|
| 17.05.2017, 15:03 | |
|
0
|
|
|
6691 / 4102 / 1607
Регистрация: 09.05.2015
Сообщений: 9,574
|
|
| 17.05.2017, 15:11 | |
|
А зачем экспортировать managed метод, да еще через dllexport, если его можно и так вызвать из C# без всяких проблем? Создайте обычный managed class, в нем статический метод и вызывайте из C# или любого другого .NET языка...
0
|
|
|
-15 / 10 / 6
Регистрация: 03.10.2012
Сообщений: 532
|
||
| 18.05.2017, 05:25 [ТС] | ||
|
Мне нужно написать модификацию для сервера игры, У нас пытливые умы любят дампать C# и юзать их потом в открытую. Я хочу сделать жосткую подвязку а возможно и связку. А игра на Unity3d - тобишь весь код игры это C# dll
И там к примеру есть класс BasePlayer - и экземпляр данного класса из C# из хука мне нужно передать в обработчик действий в C++ Допустим что бы юзнуть у данного экземпляра метод с нужными параметрами в плюсах. Да и не только такое делать, в общем у меня получится гибрид так как с C# я уже сижу около 3х лет да и вся моя работа подвязана на C# но в связи с потребностью в защите ПО от ололо рефлекторщиков да и юзать определенные функции WindowsAPI нужно. Помогите =( Добавлено через 58 секунд Добавлено через 11 часов 33 минуты Тоесть проблема не решаема?
0
|
||
|
6691 / 4102 / 1607
Регистрация: 09.05.2015
Сообщений: 9,574
|
|
| 18.05.2017, 06:04 | |
|
Нельзя просто так взять и передать managed объект в unmanaged код. Можно передавать простые вещи типа указателей, структур, массивов структур, делегатов и т.д.
0
|
|
|
-15 / 10 / 6
Регистрация: 03.10.2012
Сообщений: 532
|
|
| 18.05.2017, 06:37 [ТС] | |
|
Я читал гдето что можно пометить - managed или unmanaged код.
Мне любым способом нужно передать в C++ обьект. Ведь в самих же плюсах я могу его создать! А почему передать не могу дестопер на него?
0
|
|
|
6691 / 4102 / 1607
Регистрация: 09.05.2015
Сообщений: 9,574
|
|
| 18.05.2017, 15:51 | |
|
Передать можете, но не через dllexport, а по нормальному, создав класс и в нем метод принимающий объект в качестве параметра....
0
|
|
|
-15 / 10 / 6
Регистрация: 03.10.2012
Сообщений: 532
|
|
| 18.05.2017, 16:46 [ТС] | |
|
Someone007, Продемонстрируйте пожаалуйста пример. Тоесть здесь тоже самое что extern "C" dllexport
только без данных атрибутов - а просто обычный класс и попробывать его вызвать? но как сделать тогда так что бы метод был точкой входа - вот в чем вопрос заключается.
0
|
|
|
6691 / 4102 / 1607
Регистрация: 09.05.2015
Сообщений: 9,574
|
|
| 18.05.2017, 19:21 | |
|
Ну вот пример, 2 библиотеки, одна на C#, вторая на C++/CLI, и консольное приложение на C# которое создает класс из библиотеки на C# и передает его в класс из библиотеки на С++/CLI...
Точку входа сделать нельзя. Зачем она вам нужна вообще если вы сами вызываете метод?
1
|
|
|
6691 / 4102 / 1607
Регистрация: 09.05.2015
Сообщений: 9,574
|
|
| 19.05.2017, 01:37 | |
Сообщение было отмечено SkoTi как решение
Решение
Добавил еще один, более извращенный способ передачи объекта...
1
|
|
|
-15 / 10 / 6
Регистрация: 03.10.2012
Сообщений: 532
|
|
| 19.05.2017, 07:48 [ТС] | |
|
Someone007, Ваш второй вариант это как бы вроде то что мне и нужно было. Я всё перепробывал - и я даже не думал что нужно в атребутах писать void
Вот только беда... Я взял DLL плюсовскую и оказалось что это вообще не плюсы! это C#!!!! написаный на C++ В общем полное разочерование... Где ваша там DLL? Я сейчас за меньше минуты перепишу её с помощью IL кода. так как там изи вообще. А я как раз и пытаюсь избавится от этого =( От прямого чтения исходного кода файла и частичная или почти полная защита от простого редактирования. В общем разочерование, вот ваш исходный код в читабельном виде Я именно ищу способ реализации как у steam_api.dll Что бы открыть нельзя было - а юзать можно. Я так понимаю CLR мне не подходит =( А нужно юзать чистые плюсы а там не using, не обьектов из C# =( ну чтож, пошел капать =(
0
|
|
|
6691 / 4102 / 1607
Регистрация: 09.05.2015
Сообщений: 9,574
|
|
| 19.05.2017, 15:11 | |
|
Вот только кода второго, извращенного варианта вы в обычном .NET декомпиляторе уже не увидите, вы ведь именно этого и хотели, разве нет?
0
|
|
| 19.05.2017, 15:11 | |
|
Помогаю со студенческими работами здесь
13
Передача обьекта в функию
Передача обьекта в атрибут Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Подключение Box2D v3 к SDL3 для Android: физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
|
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования.
Часть библиотеки BedvitCOM
Использованы. . .
|
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога
SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
|
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога
SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
|
|
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
|
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога
SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
|
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога
Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip"
Извлеките архив и вы увидите. . .
|
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога
Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д.
Сборка примера
Скачайте. . .
|