![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| maxfox111 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 45 Регистрация: 9.11.2008 Репутация: нет Всего: нет |
Добрый день,
Хотелось бы получить консультацию по следующему вопросу: Есть DLL (DLL_LIB.dll)у которой есть набор экспортируемых функций, правильно ли я объявляю их в модуле дельфи. То есть есть список: DLL_LIB void __stdcall Set_Bit_R1(unsigned short int * ); -------------//-----------------//---------- DLL_LIB void __stdcall Set_Bit_R24(unsigned short int * ); Я объявляю, у себя в исходнике, его как
1) У меня очень большое сомнение в том, что я правильно объявляю параметры. 2) В том случае, если я просто создаю такой список объявлений, то программа запускается и все нормально. В том случае если я хотя бы, какой вызов из этого списка пытаюсь осуществить, то выдается сообщение об ошибке «The procedure entry point Set_Bit_R1 could not be located in the dynamic link library DLL_LIB.dll.» Большая просьба (не бить сильно) либо подскажите где возможно прочитать о правильной декларации экспортируемых функций, либо подскажите в чем я ошибаюсь. Спасибо |
|||
|
||||
| Poseidon |
|
|||
![]() Delphi developer ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 5273 Регистрация: 4.2.2005 Где: Гомель, Беларусь Репутация: 53 Всего: 133 |
На сколько я понимаю, тут передается 2 параметра: unsigned short и int *. unsigned short в си - это word в Delphi. int * в си - это, наверно, PInteger. Ну и при объявлении функции после слова external имя библиотеки должно передаваться как текст (т.е. в одинарных кавычках).
-------------------- Если хочешь, что бы что-то работало - используй написанное, если хочешь что-то понять - пиши сам... |
|||
|
||||
| maxfox111 |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 45 Регистрация: 9.11.2008 Репутация: нет Всего: нет |
Уважаемый Посейдон
1) К ДЛЛ прилагается описание функций и макросов так для этого списка который привел я, там указано макросы: SET_BIT1(Data) функции: Set_Bit1(unsigned short int *Data ) 2) К стыду своему сразу не обратил внимание, Я объявляю вот так, то есть с одинарными кавычками. Это правильно?
А в соответствии с вашими комментами надо
|
||||
|
|||||
| Illusion Dolphin |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1198 Регистрация: 3.5.2003 Репутация: 36 Всего: 63 |
http://www.lix.polytechnique.fr/~liberti/p...data_types.html
Т.е. это один параметр
-------------------- В мире всего две бесконечности: вселенная и человеческая глупость... На счёт вселенной я не уверен. Шифрование и организация фотографий - Photo Database 4.5 |
|||
|
||||
| maxfox111 |
|
||||||
|
Новичок Профиль Группа: Участник Сообщений: 45 Регистрация: 9.11.2008 Репутация: нет Всего: нет |
Добрый день, еще раз
условие: Есть DLL (DLL_LIB.dll)у которой есть набор экспортируемых функций
Еще есть документ описывающий действия выполняемые этими функциями. Где функции описаны также. Я объявляю, у себя в исходнике, его как
Без вызова этих процедур, моя программа компилируется нормально. НО стоит добавить вызов любой процедуры, выскакивает сообщение об ошибке «The procedure entry point Set_Bit_R1 could not be located in the dynamic link library DLL_LIB.dll.» Посмотрел в тотал командере при помощи плагина FileInfo со снятой галкой "Undecorate", список имен необходимых мне функций выглядит так:
Такие имена в декларации не поддерживает уже среда Дельфи. Пересобирать ДЛЛ я не могу, так как не имею ее исходного кода. Вопрос: Как из своей программы получить возможность осуществить вызов функций из этой ДЛЛ? Большое спасибо |
||||||
|
|||||||
| Fomoco |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 2 Регистрация: 4.8.2009 Репутация: нет Всего: нет |
Попробуй так
|
|||
|
||||
| Poseidon |
|
|||
![]() Delphi developer ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 5273 Регистрация: 4.2.2005 Где: Гомель, Беларусь Репутация: 53 Всего: 133 |
maxfox111, я думаю, что если хочешь действительно получить ответ, то придется показать тот самый документ, который идет в сопровождение к этой длл, иначе мы тут на кофейной гуще гадаем.
-------------------- Если хочешь, что бы что-то работало - используй написанное, если хочешь что-то понять - пиши сам... |
|||
|
||||
![]()
|
| Правила форума "Delphi: Общие вопросы" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |