|
-15 / 10 / 6
Регистрация: 03.10.2012
Сообщений: 532
|
||||||||||||
Передача экземпляра обьекта в функцию dllexport14.05.2017, 16:03. Показов 2147. Ответов 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,575
|
|
| 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,575
|
|
| 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,575
|
|
| 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,575
|
|
| 18.05.2017, 19:21 | |
|
Ну вот пример, 2 библиотеки, одна на C#, вторая на C++/CLI, и консольное приложение на C# которое создает класс из библиотеки на C# и передает его в класс из библиотеки на С++/CLI...
Точку входа сделать нельзя. Зачем она вам нужна вообще если вы сами вызываете метод?
1
|
|
|
6691 / 4102 / 1607
Регистрация: 09.05.2015
Сообщений: 9,575
|
|
| 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,575
|
|
| 19.05.2017, 15:11 | |
|
Вот только кода второго, извращенного варианта вы в обычном .NET декомпиляторе уже не увидите, вы ведь именно этого и хотели, разве нет?
0
|
|
| 19.05.2017, 15:11 | |
|
Помогаю со студенческими работами здесь
13
Передача обьекта в функию
Передача обьекта в атрибут Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2.
Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива.
Было так:. . .
|
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2.
Задача: реализовать контроль корректности заполнения дат назначения. . .
|
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html
Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
|
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2.
Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
|
|
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях.
Задача: при копировании документа очищать определенные реквизиты и табличную. . .
|
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git
main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели
8ATzM_2aurI
|
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2.
Задача: запретить редактирование документа, если он открыт у другого пользователя.
/ / . . .
|
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои.
А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
|