![]() |
|
|
![]()
|
|
| porex |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 18.8.2010 Репутация: нет Всего: нет |
Здравствуйте!
Имеется dll, lib файл и заголовочник созданные в MS VC8. Необходимо подключить dll'ку к C++ Builder 2010. Пробовал подключать статически сначала оригинальный lib:
далее, начитавшись сообщений по форумам, сделал lib файл для Buildera implib'ом, результат тот же(( Статически подключать отпало желание. Пробую динамически:
GetLastError() возвращает 127 т.е. функция не найдена! Писать __import и __cdecl бесполезно. Уже не знаю как библиотекой можно справиться( Это сообщение отредактировал(а) porex - 19.8.2010, 12:28 Присоединённый файл ( Кол-во скачиваний: 6 )
DLL.zip 62,74 Kb |
||||
|
|||||
| lamber |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 143 Регистрация: 20.12.2008 Репутация: нет Всего: нет |
implib'ом создается lib файл из dll а не конвертирует VC lib в Builder'вский. Попробуй может дело в этом
|
|||
|
||||
| porex |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 18.8.2010 Репутация: нет Всего: нет |
Очепятка. Сделал lib файл для Buildera, но это не помогло Это сообщение отредактировал(а) porex - 19.8.2010, 12:26 |
|||
|
||||
| mrbrooks |
|
|||
![]() трололомен ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4259 Регистрация: 4.10.2006 Где: Дол Гулдур Репутация: 167 Всего: 306 |
в таких темах надо уже петь фальцетом: "В поиск!!!"
используем implib полученную *.lib подключаем через AddProject или типа того. |
|||
|
||||
| Dem_max |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1780 Регистрация: 12.4.2007 Репутация: 14 Всего: 39 |
для динамического импорта утилитой dependecy walker посмотри названия экспортируемых функций, а потом уже их пиши у себя в программе.
для статической линковки нужно файл lib с помощью утилиты COFF2OMF (храниться в папке bin бормана) переконвертировать библиотеку из мелкософтовского формата в бормановский. -------------------- Американские программисты долго не могли понять, почему русские при зависании Windоws всё время повторяют "Твой зайка написал" ("Yоur bunnу wrоte") |
|||
|
||||
| porex |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 18.8.2010 Репутация: нет Всего: нет |
Вы внимательней прочитайте сообщение! Там в первых же строках описан результат!!! |
|||
|
||||
| mrbrooks |
|
|||
![]() трололомен ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4259 Регистрация: 4.10.2006 Где: Дол Гулдур Репутация: 167 Всего: 306 |
||||
|
||||
| porex |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 18.8.2010 Репутация: нет Всего: нет |
Названия функций брал из заголовочника. Сейчас попробую dependecy walker.
данная утилита делает файл размером в 512 байт почти со всеми нулями и что прикажете с ним делать? |
||||
|
|||||
| lamber |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 143 Регистрация: 20.12.2008 Репутация: нет Всего: нет |
Щас попробовал создать либ файл из dll'ки пишет unknown file type может с dll что-то не так :?
|
|||
|
||||
| porex |
|
||||||
|
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 18.8.2010 Репутация: нет Всего: нет |
Сейчас сам удивился, пол часа назад создавалась. Поищу другую. Добавлено через 3 минуты и 15 секунд Действительно странно. Вот есть lib созданный несколько часов назад implimb'ом. Добавлено через 5 минут и 22 секунды Вы прикалываетесь? Вот в первом посте написано!
Добавлено через 8 минут и 35 секунд
Все работает. В синтаксисе вызова сначала нужно писать файл .lib, а потом .dll;) Присоединённый файл ( Кол-во скачиваний: 4 )
mj2_to_frames_dll.lib 2,00 Kb |
||||||
|
|||||||
| Dem_max |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1780 Регистрация: 12.4.2007 Репутация: 14 Всего: 39 |
да и еще можешь не париться со статической линковкой, иногда переконвертация или создания lib может не пройти. Юзай динамическую.
-------------------- Американские программисты долго не могли понять, почему русские при зависании Windоws всё время повторяют "Твой зайка написал" ("Yоur bunnу wrоte") |
|||
|
||||
| porex |
|
||||||
|
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 18.8.2010 Репутация: нет Всего: нет |
Посмотрел этим Walker'ом, вот как выглядит функция:
Смутило несоответствие типов параметров. Переделал. Но результат не изменился. Нынешний вид вызова:
Добавлено через 14 минут и 11 секунд Может кто попробует прикрутить к своему проекту? Это сообщение отредактировал(а) porex - 19.8.2010, 13:16 |
||||||
|
|||||||
| Dem_max |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1780 Регистрация: 12.4.2007 Репутация: 14 Всего: 39 |
Если ты внимательно смотрел dependecy walker исходную dll то там функция имеет название ?MJ2_append_Init@@YAHPBDPAPAX1PAH@Z
Не надо делать Undecorate C++ Functions -------------------- Американские программисты долго не могли понять, почему русские при зависании Windоws всё время повторяют "Твой зайка написал" ("Yоur bunnу wrоte") |
|||
|
||||
| porex |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 18.8.2010 Репутация: нет Всего: нет |
И как тогда получить на нее указатель? "_" спереди стоит. Добавлено через 3 минуты и 35 секунд Хм....думал так нельзя. Но с этим ?MJ2_append_Init@@YAHPBDPAPAX1PAH@Z названием получилось. Щас проверю полностью работоспособность. Спасибо! |
|||
|
||||
| Dem_max |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1780 Регистрация: 12.4.2007 Репутация: 14 Всего: 39 |
не знаю как у тебя но у меня все работает
-------------------- Американские программисты долго не могли понять, почему русские при зависании Windоws всё время повторяют "Твой зайка написал" ("Yоur bunnу wrоte") |
|||
|
||||
| porex |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 18.8.2010 Репутация: нет Всего: нет |
У меня тоже все заработало! Спасибо огромное!!!!
Добавлено через 2 минуты и 28 секунд Интересно, а почему именно так? Во всех описаниях написано, максимум нужно добавить "_" т.к происходит декорирование. |
|||
|
||||
| Dem_max |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1780 Регистрация: 12.4.2007 Репутация: 14 Всего: 39 |
в ж...пу описание, есть dependecy walker, он тебе скажет как правильно.
Это сообщение отредактировал(а) Dem_max - 19.8.2010, 14:25 -------------------- Американские программисты долго не могли понять, почему русские при зависании Windоws всё время повторяют "Твой зайка написал" ("Yоur bunnу wrоte") |
|||
|
||||
| porex |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 18.8.2010 Репутация: нет Всего: нет |
Понятно
|
|||
|
||||
| xvr |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 48 Всего: 223 |
||||
|
||||
![]()
|
| Правила форума "С++ Builder" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C++ Builder | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |