|
1 / 1 / 4
Регистрация: 20.10.2012
Сообщений: 130
|
|
Получить доступ из dll к данным из программы29.11.2012, 07:36. Показов 5467. Ответов 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 | |
|
Как получить доступ к данным в Grid? Как получить доступ к данным в ArrayList Как получить доступ к данным в List<>? Как теперь получить доступ к данным из VB6? Пытаюсь получить доступ к данным с веб-страницы Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
| Опции темы | |
|
|
Новые блоги и статьи
|
|||
|
Был там один разговор по поводу свободы в материальном мире.
kumehtar 19.08.2026
Суть: рассматривается живое существо, оказавшееся внутри довольно странной системы (этого мира) и пытающееся обустроить в ней свой кусок пространства.
Жизнь действительно предъявляет каждому. . .
|
Когда логика программы не спасает от человеческих ошибок
Maks 18.08.2026
В последнее время всё чаще и чаще сталкиваюсь с таким явлением, как абсолютная невнимательность (или глупость) пользователей. Проявляется это чаще всего на работе в коллективе. Допустим, человек с. . .
|
Лето уходит
kumehtar 17.08.2026
|
Мысли в слух
kumehtar 17.08.2026
Забавно, насколько сейчас стала доступна информация. Например о магии, духовном развитии, медитациях, и других подобных направлениях, ранее зачастую тайных, передаваемых от учителя к ученику. Хотя. . .
|
|
Перемещение строк из ТЧ в другой документ с учетом текущего пробега
Maks 17.08.2026
Реализация из решения ниже выполнена на примере нетипового документа "Автозапчасти", с ТЧ "Шины".
За основу взят алгоритм отсюда: https:/ / www. cyberforum. ru/ blogs/ 359708/ 10838. html
Задача: . . .
|
Саморегулирующийся социальный контракт для сервера cross-section.
Hrethgir 14.08.2026
С кодом конечно таких глубоких размышлений пока не было, впрочем я уже привык к алгоритмизации. Суть предмета записи: снова в диалоге с нейросетью (я взял пока себе ник для учётки админа - Rector). . . .
|
Часы электронные
Uhbif79 12.08.2026
Выкладываю программу часов. Программа позволяет:
1. Использовать системное время и дату,
2. Есть возможность вводить время и дату вручную.
3. Реализованы 2 будильника: начало и конец рабочего дня. . . .
|
Часы с будильником на основе класса QLCDNumber
Uhbif79 12.08.2026
Всем добрый день, выкладываю программу часов с будильником на основе класса QLCDNumber.
Здесь я пробовал самостоятельно создавал классы, впервые столкнулся с видимостью переменной одного класса из. . .
|