C++Builder
  Начало   Форум   Помощь Войти Регистрация  
Страниц: [1]   Вниз
  Печать  
Автор Тема: Подключение dll - разные косяки  (Прочитано 3135 раз)
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


« Ответ #7 : 06 Декабрь 2013, 08:15:03 »

аааа
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  




....

Powered by SMF 1.1.21 | SMF © 2025, Simple Machines
Страница сгенерирована за 0.11 секунд. Запросов: 22.