|
0 / 0 / 1
Регистрация: 20.05.2017
Сообщений: 22
|
|
Импорт dll, нужен пример использования20.05.2017, 12:08. Показов 2870. Ответов 12
Есть некая dll.
Не могу найти информацию о том, как использовать вшитые там функции. [DllImport("fptr.dll")] А дальше? В примерах приписывается статический extern метод. А вот что дальше - не могу нагуглить. Буду благодарен за помощь.
0
|
|
| 20.05.2017, 12:08 | |
|
Ответы с готовыми решениями:
12
Нужен пример использования PostMessage
Нужен пример использования интерфейсов и делегатов в одной программе |
|
|
|
| 20.05.2017, 12:47 | |
|
Безопасное получение хэша пароля, заданного через указатель из SecureString
http://www.pinvoke.net/ - тонны примеров объявлений функций из WinAPI.
0
|
|
|
0 / 0 / 1
Регистрация: 20.05.2017
Сообщений: 22
|
|
| 20.05.2017, 12:56 [ТС] | |
|
Это уже следующий шаг, наверно
Сейчас я не понимаю в целом, как это работает. Вот, сделал я импорт. Далее, я должен объявить статическую функцию, имя которой совпадает с какой-то вшитой в dll функцией? Это чисто интуиция программиста очень далекого от десктопа и Windows, понятного объяснения принципа не могу найти.
0
|
|
|
|
|
| 20.05.2017, 13:09 | |
|
Ну в общем да, так. Только сначала определяется импортируемая функция, к которой добавляется атрибут DllImport, указывающий параметры импортирования.
Интуицией можете поизучать и сравнить известные определения WinAPI функций и их импорт, показанный на сайте pinvoke. Теоретическую часть можете посмотреть в книге C# 6.0 in a Nutshell Албахари, глава 25 "Interoperability". Литература по C# для начинающих и не только
1
|
|
|
0 / 0 / 1
Регистрация: 20.05.2017
Сообщений: 22
|
|
| 20.05.2017, 14:04 [ТС] | |
|
Спасибо. А dll сам класть просто в корень с exe? ..projectPath\bin\Release\file.dll?
Файл там существует, но выдается ошибка "$exception {"Не удается загрузить DLL "fptr.dll": Не найден указанный модуль. (Исключение из HRESULT: 0x8007007E)"} System.DllNotFoundException"
0
|
|
|
0 / 0 / 1
Регистрация: 20.05.2017
Сообщений: 22
|
|
| 20.05.2017, 14:10 [ТС] | |
|
Точно не перепутал. Пробовал и в debug тоже - все равно не видит(
0
|
|
|
0 / 0 / 1
Регистрация: 20.05.2017
Сообщений: 22
|
|
| 20.05.2017, 15:08 [ТС] | |
|
Другие dll видит, эту - нет. Насколько я понимаю, это С++ dll, она отказывается импортироваться как ссылка. Может, проблема в этом? Может ли быть такое, что dll нельзя использовать в C#?
0
|
|
|
0 / 0 / 1
Регистрация: 20.05.2017
Сообщений: 22
|
||||||
| 20.05.2017, 15:26 [ТС] | ||||||
|
https://github.com/pistol88/dvizh-seller
DLL: http://graphing.ru/data/fptr.dll (исходников нет) Вставляю так:
Хотя, вот есть fptr.h некий https://gist.github.com/pistol... 6bab65a690
0
|
||||||
|
6691 / 4102 / 1607
Регистрация: 09.05.2015
Сообщений: 9,575
|
|
| 20.05.2017, 15:27 | |
|
У вашей длл есть зависимости в виде libgcc_s_dw2-1.dll, mingwm10.dll (а у этих зависимостей так же могут быть свои зависимости), они установлены в систему или лежат рядом с длл?
1
|
|
|
0 / 0 / 1
Регистрация: 20.05.2017
Сообщений: 22
|
|
| 20.05.2017, 16:58 [ТС] | |
|
Спасибо! Переместил недостающие DLL файлы, проблема решена
![]() Но теперь такое: "System.AccessViolationException: "Попытка чтения или записи в защищенную память. Это часто свидетельствует о том, что другая память повреждена." Добавлено через 43 секунды Тут уже что-то с типами, судя по Гуглу, пойду вникать в доки. Добавлено через 1 час 24 минуты Чудики, которые страдают той же проблемой, что у меня: я справился. Эта dll визжит как *****, когда ее трогают. Но можно просто добавить ссылку на C:\Program Files (x86)\ATOL\Drivers\Bin\FprnM1C.dll в проект и создавать нужный объект так: cmd = new FprnM1C.FprnM45();
0
|
|
| 20.05.2017, 16:58 | |
|
Помогаю со студенческими работами здесь
13
Нужен пример использования вместо значений словаря — свои собственные классы
Нужен пример использования WhatsAppApi Нужен пример использования API в Вконтакте Пример использования ObservableCollection? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2.
Данный документ берёт данные из другого нетипового документа. . .
|
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
|
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача: реализовать программный контроль на предмет проведения документа. . .
|
Программный контроль заполнения реквизита табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача: реализовать контроль заполнения реквизита "ПричинаСписания". . .
|
|
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение:
DISM / Online / Add-Capability / CapabilityName:WMIC~~~~
Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
|
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача: при создании документов установить период списания автоматически. . .
|
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2.
Задача: вывести данные из ТЧ нетипового документа. . .
|
Программное заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению.
На форме документа создается. . .
|