![]() |
Модераторы: Daevaorn |
![]() ![]() ![]() |
|
RomanK |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 81 Регистрация: 25.6.2005 Где: Россия, Выборг Репутация: нет Всего: 2 |
Вобщем написал я DLL-ку. Она использует библиотеку CURL, которую я до написания DLL-ки успешно скачал с оф.сайта, скопилил, и каким-то образом установил на свой комп.
![]() На моем компьютере все хорошо работает. Программа, использующая эту DLL, успешно запускается и работает. Когда переношу эту DLL-ку на другой комп, то она уже не подключается, так как нехватает каких-то компонентов. Я подозреваю, что CURL нету, ибо на свой комп, кроме него, я ничего "со стороны" не ставил. Далее провел тест на своем компе, убрал libcurld.dll с папки Windows. Как и подозревал, на моем компе выскочила ошибка. Но когда я эту DLL-ку (libcurld.dll) перемещаю на другой комп и тоже сую в папку Windows, никаких положительных результатов не вижу. Таким образом не понимаю, как мне этот курл на другом компе установить... Простым копированием DLL в папку Windows не лечится. :( Перерыл инет, и нашел такое решение: Установить в параметрах проекта Runtime Library в /MT, таким образом все сторонние библиотеки должны зашится в мою DLL-ку тем самым увеличив ее объем. Круто думаю я, делаю так как сказано, компилирую, а на выходе получаю мегамного ошибок линковки. ![]() Потом еще повозился какие то параметры позаменял и в итоге имеем вот это:
Каким образом это победить? Делаю когда вот это: "use /NODEFAULTLIB:library", появляется еще больше ошибок, что ваще туши свет. ![]() Помогите пожалуйста. Спасибо. |
|||
|
||||
Estranged |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 158 Регистрация: 30.8.2010 Репутация: нет Всего: 3 |
Скачайте Process Monitor. Запустите ее, потом запустите свое приложение. Вывалится с ошибкой, как я понял, это ошибка отсутсвия некой dll? Теперь находите в Process Monitor свой процесс, фильтруете по имени (правой кнопкой-Include-Process Name). Убеждаемся, что File System Activity кнопка нажата, теперь ищем строку с записью в колонке Result типа PATH NOT FOUND или NOT FOUND. Если после этого в логе видно, что процесс завершился, то скорее всего это из-за этой не найденной DLL. Если же эта dll прилинкована статически, т.е. явно загрузчик пишет, что dll такая вот не найдена. То задача еще проще. Можно использовать еще dependency walker. И есть подозрение, что именно Ваша DLL требует CRT, какую-нибудь MSVCRXX.DLL
Добавлено через 3 минуты и 30 секунд И, судя по ошибкам, вы игнорируете CRT библиотеку.
Это какие именно? |
|||
|
||||
Sahab |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 151 Регистрация: 1.9.2009 Репутация: нет Всего: 3 |
http://msdn.microsoft.com/en-us/library/Aa267384
пересобрать все используемые либы заново с одинаковыми флагами. |
|||
|
||||
boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 49 Всего: 110 |
dll - законченный модуль. она не нуждается ни в чем при линковке с нею. Добавлено через 2 минуты и 54 секунды
да, возможно. к примеру, если dll`ку собирали на win7 и пытаетесь использовать ее на winxp. побеждается статической линковкой зависимостей dll`ки. Это сообщение отредактировал(а) boostcoder - 26.1.2012, 11:46 |
|||
|
||||
baldina |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3433 Регистрация: 5.12.2007 Где: Москва Репутация: 32 Всего: 101 |
||||
|
||||
RomanK |
|
||||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 81 Регистрация: 25.6.2005 Где: Россия, Выборг Репутация: нет Всего: 2 |
Да!!! Запускал на компьютере dependency walker. Говорилось что нету такой библиотеки. MSVCR100D.dll вот такая.
ИМЕННО ТАК! ![]()
Объясни плиз поподбробней. Не понимаю, что за статическая линковка зависимостей. Может надо было компилить CURL тоеж с флагом Runtime Library = /MT ??? |
||||||
|
|||||||
RomanK |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 81 Регистрация: 25.6.2005 Где: Россия, Выборг Репутация: нет Всего: 2 |
Что то накрутил, и теперь вот такие ошибки стали вылезать:
|
|||
|
||||
boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 49 Всего: 110 |
ну ты чё?! msvcrt.dll на win7 и на winxp имеют разные списки экспорта, ибо микрософт начал урезать экспортируемые имена готовясь к выходу win8. |
|||
|
||||
RomanK |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 81 Регистрация: 25.6.2005 Где: Россия, Выборг Репутация: нет Всего: 2 |
И что делать ? Добавлено через 54 секунды Скажите, есть смысл компилить CURL с параметром Runtime Library = /MT, а потом собирать мой с таким же параметром? или нет? |
|||
|
||||
boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 49 Всего: 110 |
||||
|
||||
RomanK |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 81 Регистрация: 25.6.2005 Где: Россия, Выборг Репутация: нет Всего: 2 |
||||
|
||||
boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 49 Всего: 110 |
msvcrt.dll Добавлено через 6 минут и 8 секунд по моему, мы отклонились от сути топика... |
|||
|
||||
RomanK |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 81 Регистрация: 25.6.2005 Где: Россия, Выборг Репутация: нет Всего: 2 |
Вобщем я вроде разобрался по теме топика.
Скачал заного новый CURL от января сего года. Скомпилил его заного. Далее создал новый проект. Добавил туда все исходники своей библиотеки. Прописал где надо брать CURL-овские библиотеки. Выставил параметр Runtime Library = /MT и попробовал скомпильнул. Все сделалось без единой ошибки. ![]() Единственное, что надо таскать с проектом две DLL. Одну мою, а другую - libcurl.dll. Впринципе не особо геморой, но все же хотелось бы замутить все в одной DLL-ке. Может разбирусь на досуге. Или может кто здесь подскажет? |
|||
|
||||
Modul |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 238 Регистрация: 17.2.2006 Репутация: нет Всего: нет |
А почему две ? Добавлено через 6 минут и 41 секунду Видимо 2 DLL правильно: 1 - для CURL, 2 - для проекта Пиши Рома ! --------------------
I'll be back ! |
|||
|
||||
RomanK |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 81 Регистрация: 25.6.2005 Где: Россия, Выборг Репутация: нет Всего: 2 |
||||
|
||||
Dem_max |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1780 Регистрация: 12.4.2007 Репутация: 4 Всего: 39 |
убери в своем проекте или в коде такую строку
-------------------- Американские программисты долго не могли понять, почему русские при зависании Windоws всё время повторяют "Твой зайка написал" ("Yоur bunnу wrоte") |
|||
|
||||
RomanK |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 81 Регистрация: 25.6.2005 Где: Россия, Выборг Репутация: нет Всего: 2 |
Dem_max, а зачем, объясни пожалуйста? Что это даст?
|
|||
|
||||
Dem_max |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1780 Регистрация: 12.4.2007 Репутация: 4 Всего: 39 |
Потому что в стандартном проекте этого не должно быть.
-------------------- Американские программисты долго не могли понять, почему русские при зависании Windоws всё время повторяют "Твой зайка написал" ("Yоur bunnу wrоte") |
|||
|
||||
![]() ![]() ![]() |
Правила форума "С++:Общие вопросы" | |
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |