Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> как узнать в какой IDE была создана dll 
:(
    Опции темы
rubricat
Дата 29.9.2008, 11:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 29.9.2008

Репутация: нет
Всего: нет



Доброго времени суток,

скажите, пожалуйста, есть ли способ узнать, в какой среде программирования была создана библиотека? если да, то как?
Результат работы утилиты dumpbin возвращает информацию о dll, но из нее мне не удалось понять о среде разработки длл.

я пишу на VC2005 приложение, которое использует длл. У меня есть подозрение, что эта длл создана в BCB, т.к. при попытке вызова экспортируемой из длл функции в моем приложении, возникают ошибки. В соответствии с соглашениями о вызовах cоглашениями о наименованиях в этих IDE имена функции в VC2005 и BCB получаются разными. 

Но все же  твердой уверенности что эта билдеровская длл-ка нет, поэтому хочется знать точно про среду програм-я ддл, чтобы знать куда копать дальше. Может я просто в своем коде ошибаюсь.

Еще вопрос, может ли dumpbin работать с длл-ками, которые созданы в Си Билдер или только с MSVC-ыми?

Спасибо.

Это сообщение отредактировал(а) rubricat - 29.9.2008, 11:51
PM MAIL   Вверх
586
Дата 29.9.2008, 13:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2243
Регистрация: 8.5.2006

Репутация: 10
Всего: 146



Есть прога PEID. Скачать можешь здесь.

Цитата(rubricat @  29.9.2008,  12:31 Найти цитируемый пост)
В соответствии с соглашениями о вызовах cоглашениями о наименованиях в этих IDE имена функции в VC2005 и BCB получаются разными. 

Можно подключить любую dll. Опиши проблему подробнее.
PM   Вверх
rubricat
Дата 29.9.2008, 14:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 29.9.2008

Репутация: нет
Всего: нет



Цитата(586 @ 29.9.2008,  13:49)
Есть прога PEID. Скачать можешь здесь.



проблема в моем проекте такая: 
не вызывается экспортируемая из длл функция.
длл загружается в память, GetProcAddress для экспортируемой функции возвращает ненулевой указатель. но при попытке вызвать функцию проект виснет.
пробовала в своем приложении явно использовать соглашения о вызовах перед функцией длл: __stdcall, __cdecl.
когда использую __stdcall , проект виснет,
когда __cdecl, выходит ошибка 
"The value of ESP was not properly saved across a function call. This is usually a result of calling a function declared with one calling convention with a function pointer declared with a different calling convention."


спасибо, 
про PEiD тоже подсказали, щас читаю про PE-файлы и PEiD.
PM MAIL   Вверх
586
Дата 29.9.2008, 14:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2243
Регистрация: 8.5.2006

Репутация: 10
Всего: 146



Как называется библиотека? К этой библиотеке есть SDK (заголовочные файлы, или описание работы функций)? Умеете пользоваться этой DLL?
PM   Вверх
rubricat
Дата 29.9.2008, 14:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 29.9.2008

Репутация: нет
Всего: нет



эта библиотека пользовательская.
у меня есть описание этой библиотеки.

по описанию создала хидер к длл.

нашла ресурс по проблемам совместимости проектов, созданных в разных компиляторах. изучаю




PM MAIL   Вверх
586
Дата 29.9.2008, 15:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2243
Регистрация: 8.5.2006

Репутация: 10
Всего: 146



Цитата(rubricat @  29.9.2008,  15:56 Найти цитируемый пост)
у меня есть описание этой библиотеки.

Выкладывайте описание проблемной функции, и код, как с этой функцией работаете.
PM   Вверх
rubricat
Дата 30.9.2008, 10:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 29.9.2008

Репутация: нет
Всего: нет



проблема решена
в моем коде был прописан неправильный порт, на котором висит устройство. имя порта передается в качестве параметра в функцию длл.
но в случае если длл не находит устройство по прописанному порту, она должна была возвращать определенное значение, чего не происходило. но это уже вопрос к разработчику библиотеки

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0460 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.