|
1 / 1 / 4
Регистрация: 20.10.2012
Сообщений: 130
|
|
Получить доступ из dll к данным из программы29.11.2012, 07:36. Показов 5365. Ответов 36
Метки нет (Все метки)
Есть dll к программме А на C++ и есть программа Б на C#. Необходимо получить доступ из dll к данным из программы Б. Причем доступ высокоскоростной и постоянный.
0
|
|
| 29.11.2012, 07:36 | |
|
Ответы с готовыми решениями:
36
Как получить доступ к данным доступ к данным другой программы Получить доступ к данным в документе Word |
|
1 / 1 / 4
Регистрация: 20.10.2012
Сообщений: 130
|
||||||||||||||||||||||||||
| 30.11.2012, 14:31 [ТС] | ||||||||||||||||||||||||||
|
Что за def файл?
Добавлено через 5 минут Программа А не принимает в dll строку:
Как мне переделать мою строку экспорта, чтобы программа A приняла dll? Как то по другому надо ее записать. Добавлено через 6 минут Я так понимаю что здесь используется #pragma и #define Добавлено через 11 минут и так пробую:
Добавлено через 3 минуты у самой dll экспорт прописан в файлу *.h
у меня 64 разрядная Win7 Добавлено через 14 часов 19 минут Так и не дает экспорт еще один сделать. Надо наверное как-то по другому доступ получить к обычным функциям, которые с Main конфликтовать не будут.(А Main в этой dll также с экспортом работает, но к программе A). Надо через систему к ним доступ получить. На C++ примеры видел, хотелось бы на C#. Добавлено через 12 минут А если использовать не dllexport, а просто extern "C"? Доступ из C# получу?
0
|
||||||||||||||||||||||||||
|
1 / 1 / 4
Регистрация: 20.10.2012
Сообщений: 130
|
|
| 30.11.2012, 14:53 [ТС] | |
|
Вот войти бы в dll через точку входа основную Main и вызвать другую функцию. Такое возможно? Просто пока сделать функцию с dllexport не получается, и проблема не в ошибки при компиляции, а в программе А которая просто dll не принимает такой. Вопрос разработчику задал, но они не охотно отвечают.
Добавлено через 8 минут Пишет, что память защищенная и не дает мне писать данные туда. Добавлено через 43 секунды Хотя я вроде ничего не писал, а вызвал функцию.
0
|
|
|
|
|
| 30.11.2012, 14:57 | |
|
Функция Main не нужна.
Сейчас попробую сам написать такое (возьму из хелпа), о результате отпишусь. Добавлено через 2 минуты да, кстати, в качестве проверки, что dll действительно экспортирует функции - рекомендую dll export viewer от nirsoft.
0
|
|
|
1 / 1 / 4
Регистрация: 20.10.2012
Сообщений: 130
|
|||||||||||
| 30.11.2012, 15:08 [ТС] | |||||||||||
|
Стороннюю API как-то давно получалось подцепить, но она в cpp dllexport не прописывало и функции все вынесены, только:
0
|
|||||||||||
|
|
|
| 30.11.2012, 15:27 | |
|
Сейчас перепроверил с либой на delphi - работает на ура.
На visual c++ - не может найти функцию. Возможно, это связано с тем, что название функции как-то не так экспортируется (судя по отчету dll export viewer), но как это настраивается - не нашел.
0
|
|
|
1 / 1 / 4
Регистрация: 20.10.2012
Сообщений: 130
|
||||||
| 30.11.2012, 15:32 [ТС] | ||||||
|
На C++ есть такая вещь:
И еще разобраться как использовать.
0
|
||||||
|
|
|||||||||||
| 30.11.2012, 15:41 | |||||||||||
|
йоу! нашел.
для правильного описания функций (без описания сигнатуры, ибо с ней не работает) делаем так:
0
|
|||||||||||
|
1 / 1 / 4
Регистрация: 20.10.2012
Сообщений: 130
|
|||||||||||
| 30.11.2012, 15:54 [ТС] | |||||||||||
|
Как я уже делал:
Проще напрямую к функции доступ получить, чем бороться с программой которая код ошибки не выдает.
0
|
|||||||||||
|
1 / 1 / 4
Регистрация: 20.10.2012
Сообщений: 130
|
|
| 30.11.2012, 16:05 [ТС] | |
|
Программа пишет что dll не соответсвует версии программы. Стоит только в cpp закрыть функцию и сразу dll принимается. Сначало разработчик мне сказал что main должна быть выше других функций, сделал выше и все равно не работает. Похоже 2 точку входа сделать программа не позволит.
Остается в памяти ловить dll, находить адрес функции и запускать.
0
|
|
|
|
|
| 30.11.2012, 16:06 | |
|
о, кстати, нюанс.
В C#-ной проге, для импорта нативного кода, сама прога должна иметь ту же разрядность(32\64), что и нативная dll-ка. Это значит, что в настройках проекта, там, где стоит AnyCPU, если dll-ка не той разрядности, что система, надо поставить конкретный тип проца. По-русски это значит, что если dll-ка 32-битная, а запускается это все на 64-битной системе, то в настройках проекта надо поставить x86 вместо AnyCPU.
0
|
|
|
1 / 1 / 4
Регистрация: 20.10.2012
Сообщений: 130
|
|
| 30.11.2012, 16:07 [ТС] | |
|
по крайней мере в cpp она это не позволит.
там в VS2008 dll, там Win32 пишется. Программа dll в общем принимает, только без функций с dllexport. Обычные функции или функции с extern"C" также принимаются.
0
|
|
|
1 / 1 / 4
Регистрация: 20.10.2012
Сообщений: 130
|
||||||
| 30.11.2012, 18:28 [ТС] | ||||||
|
Подтвердил производитель, у них рабочий день начался, что еще одна точка входа недопустима.
Добавлено через 25 минут Вот решение для получения данных из dll:
Добавлено через 3 минуты Чтобы она с нужными аргументами исполнилась. Добавлено через 11 минут Есть еще вариант к dll подцепить другую dll, а в ней уже можно иметь функции с точками входа, которые можно вызывать в 1 dll. Это возможно?
0
|
||||||
|
1 / 1 / 4
Регистрация: 20.10.2012
Сообщений: 130
|
|
| 30.11.2012, 18:33 [ТС] | |
|
Получается в dll 1 надо вызвать функцию dll2, которая возьмет данные из моей программы через импорт экспорт.
0
|
|
| 30.11.2012, 18:33 | |
|
Помогаю со студенческими работами здесь
37
Как получить доступ к данным в Grid? Как получить доступ к данным в ArrayList Как получить доступ к данным в List<>? Как теперь получить доступ к данным из VB6? Пытаюсь получить доступ к данным с веб-страницы Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
20. Мат мед. Абсентеизм как отдельный тип простоя
anaschu 29.05.2026
Апдейт модели: исправленные баги, абсентеизм и новые механизмы
Продолжаю развивать ранее описанную модель рабочего коллектива на AnyLogic. За последние несколько дней был проведён серьёзный. . .
|
19. здоровье, усталость и психотип работника влияют на производительность предприятия, и наоборот, производительность на здоровье, усталось и психотип
anaschu 28.05.2026
Дискретно-событийная модель рабочего коллектива на AnyLogic: здоровье, выгорание, психотипы и микростимуляция
Привет, коллеги. Хочу поделиться итогами нескольких недель работы над симуляционной. . .
|
"Прокси" для последовательного порта
Eddy_Em 28.05.2026
Эту штуку написал я достаточно давно. Но сейчас вот понадобилось настроить датчик грозы, но при этом не отключать его от "метеодемона". Соответственно, надо запустить этот "прокси": метеодемон будет. . .
|
Рефакторинг программы уравнивания.
Massaraksh7 26.05.2026
Пример по предыдущей записи в блоге. Но, надо заметить, что, во-первых, там оптимизация не только математики, но и работы с базой данных, и с графами, а во-вторых, это ещё не всё.
|
|
Использование TThread в Lazarus для математических вычислений.
Massaraksh7 25.05.2026
Производя рефакторинг своих программ на предмет ускорения их работы, обратил внимание на такой аспект, как сокращение времени матвычислений. Дело в том, что приходится работать с большими матрицами. . .
|
Модель здравосохранения 18. Чем здоровее работник, тем быстрее выгорает
anaschu 24.05.2026
Имитационная модель корпоративного здравоохранения: что показывает математика
Сегодня в модели рабочего коллектива на AnyLogic появились три новые механики — выгорание через накопленную усталость,. . .
|
Модель здравосохранения 17. Планы на выгорание
anaschu 23.05.2026
Вот конкретная схема реализации:
В классе Работник добавить:
накопленнаяУсталость — растёт каждый час работы, снижается в перерывы и болезни
коэффициентПрезентеизма — снижает продуктивность. . .
|
Изменение цветов в палитре gif файла aka фавикона
russiannick 23.05.2026
Изменение цветов в палитре gif файла, юзаемого как фавиконка в составе html-файла, помещенная в base64, средствами нативного Java Script, навеянное сном в майский день.
Для работы необходим браузер,. . .
|