C++Builder
Начало
Форум
Помощь
Войти
Регистрация
C++Builder
>
Forum
>
Вопросы программирования
>
Общие вопросы программирования в C++Builder
>
Подключение dll - разные косяки
Страниц: [
1
]
Вниз
Печать
Автор
Тема: Подключение dll - разные косяки (Прочитано 3136 раз)
POV
Участник
Сказали спасибо: +107/-7
Offline
Сообщений: 640
Подключение dll - разные косяки
«
:
03 Декабрь 2013, 23:00:03 »
Пробую динамически загружать библиотеку - хэндл возвращается NULL.
Пробую статически - не находит функции. С помощью DLLExportViewer выяснил, что имена функций не соответствуют документации (всякие значки к ним приписались). Тогда делаю статическую загрузку по специфицированному имени.. эксшепшены лезут.
Подскажите в каких направлениях искать.. чего уже только не перерыл.
Да, есть момент! Программа не хотела запускаться ибо не нашлось msvcp110d.dll и msvcr110d.dll. Скачал с инета, залил в паку с проектом. Может как-то оно с этим связано?
Да, пробовал в RAd2010.. а в 2007 заработало. Но нужно забороть именно 2010. Где косяк.
«
Последнее редактирование: 04 Декабрь 2013, 08:56:23 от POV
»
Записан
S0mbre
Глобальный модератор
Сказали спасибо: +1113/-22
Offline
Сообщений: 2132
S0mbre
Re: Подключение dll - разные косяки
«
Ответ #1 :
04 Декабрь 2013, 14:15:48 »
Наверное, надо использовать инструменты для импорта COFF: omf2coff.exe, implib.exe и т.д.
Почитай об этом на форуме.
PS. Я как-то делал прогу для конвертации DLL, написанных в VS.
Записан
S0mbre
Глобальный модератор
Сказали спасибо: +1113/-22
Offline
Сообщений: 2132
S0mbre
Re: Подключение dll - разные косяки
«
Ответ #2 :
04 Декабрь 2013, 14:30:26 »
Вот она )
Записан
POV
Участник
Сказали спасибо: +107/-7
Offline
Сообщений: 640
Re: Подключение dll - разные косяки
«
Ответ #3 :
04 Декабрь 2013, 17:19:14 »
Не, 2007й то работает!
На рабочей машине на 2007 версии все работает. Дома же и библиотеки требует и dll не загружается. Т.е. косяк, видимо, в этих dll, что пришлось скачать с инета.
GetLastError возвращает 193 ERROR_BAD_EXE_FORMAT (%1 is not a valid Win32 application)
dll вроде 32 бита.. это следует из ее названия win32.dll
На такой же сборке винды (7ка, 64 бита) на работе прокатывает эта либа.
«
Последнее редактирование: 05 Декабрь 2013, 00:04:02 от POV
»
Записан
POV
Участник
Сказали спасибо: +107/-7
Offline
Сообщений: 640
Re: Подключение dll - разные косяки
«
Ответ #4 :
05 Декабрь 2013, 20:41:15 »
В интернетах ответов нет, а аналогичных вопросов море. Дам мой вариант, может кому пригодиться:
1. dll накатана в вижуал студио 2008
2. 2 желаемые бибилиотеки оттуда
3. dll собрана в дебаге, отсюда и желание дебажных библиотек (последний символ названия D)
4. Найденные/скаченные откуда-то библиотеки не подходят куда угодно
5. дебажные библиотеки не идут ни в одном пакете пакете обновления винды
6. Искаженные имена функций от кривых рук автора dll, всё могло быть по другому
7. Мой рабочий комп единственный из опробованных, где стояло несколько версий вижуал студии и прочего мелкософтвого
Выводы:
1. у меня всё верно сделано
2. автор dll - кривожопый мальчик из банка, куда его устроили на тёплое непыльное место папа с мамой
3. я зря потерял 3 дня
4. десятки программистов в стране жлобы ибо не сообщают, как решили вопрос, либо уже безработные, так и не справившиеся с заданием
Записан
POV
Участник
Сказали спасибо: +107/-7
Offline
Сообщений: 640
Re: Подключение dll - разные косяки
«
Ответ #5 :
05 Декабрь 2013, 20:47:32 »
Цитата: S0mbre от 04 Декабрь 2013, 14:30:26
Вот она )
Из любопытства попробовал lib получить этой утилитой. Файл-то создается, но пустой. Точнее 2 килобайта вместо нескольких сотен килобайт. При этом в логе пишет что size функций = 0.
Записан
S0mbre
Глобальный модератор
Сказали спасибо: +1113/-22
Offline
Сообщений: 2132
S0mbre
Re: Подключение dll - разные косяки
«
Ответ #6 :
06 Декабрь 2013, 07:39:41 »
Цитата: POV от 05 Декабрь 2013, 20:47:32
Цитата: S0mbre от 04 Декабрь 2013, 14:30:26
Вот она )
Из любопытства попробовал lib получить этой утилитой. Файл-то создается, но пустой. Точнее 2 килобайта вместо нескольких сотен килобайт. При этом в логе пишет что size функций = 0.
Создается LIB-файл - это не DLL, а только таблица экспортируемых функций для статической компоновки. Т.е. этот файл надо положить рядом с DLL (там, где приложение его увидит) и прилинковать к проекту директивой
Код
#pragma link "MyFile.lib" // важно указать расширение файла!
После чего можно подключить заголовочник библиотеки и просто вызывать функции DLL как обычно, без динамического подключения / выгрузки библиотеки.
Записан
POV
Участник
Сказали спасибо: +107/-7
Offline
Сообщений: 640
Re: Подключение dll - разные косяки
«
Ответ #7 :
06 Декабрь 2013, 08:15:03 »
аааа
Записан
Страниц: [
1
]
Вверх
Печать
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Вопросы программирования
-----------------------------
=> Общие вопросы программирования в C++Builder
=> Программирование с FMX
=> Работа с базами данных в C++Builder
=> Windows API
=> Технологии COM/DCOM, ActiveX
=> Аспекты и идеология профессиональной разработки ПО
=> Компьютерное железо и системное администрирование
=> студенческий городок
-----------------------------
Обсуждение материалов на сайте
-----------------------------
=> Обсуждений статей на сайте
=> Обсуждение материалов из файлового архива
=> Компоненты сторонних разработчиков к С++Builder
-----------------------------
Работа сайта и новости
-----------------------------
=> Ищу/предлагаю работу
=> Новости из мира программирования
=> Новости - события календаря
=> Голосования
=> Компьютерный юмор и приколы
=> Работа сайта
=> Флейм
-----------------------------
FAQ - частозадаваемые вопросы/ответы
-----------------------------
=> FAQ, общие вопросы, посвящённые C++Builder
=> FAQ, вопросы по базам данных
=> FAQ, вопросы по компонентам
Загружается...