![]() |
Модераторы: feodorv, GremlinProg, xvr, Fixin |
![]() ![]() ![]() |
|
becks |
|
||||||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 165 Регистрация: 6.7.2010 Репутация: нет Всего: нет |
Добрый день, коллеги. Опишу ситуацию: есть dll (назовем ее t.dll), созданная в VS 2008, она экспортирует одну функцию:
Библиотека t.dll использую в проекте на С++, созданном в RAD XE, библиотека подключается следующим образом (проверки убрал ради экономия места): Facts.h
// main.cpp
И вот тут возникает 2 вопроса: 1) LoadLibrary НЕ подгружает библиотеку во время отладки и подгружает во время обычного исполнения модуля. 2) Если функция GetFactsFromText вызывается в модуле main.cpp, то отлично отрабатывается, если в каком либо другом, то ее адрес = 0, хотя в модуле есть: Некоторый_модуль.cpp
Буду очень благодарен за помощь. Спасибо. Добавлено через 3 минуты и 39 секунд Забыл написать, GetLastError() , вызванный сразу после LoadLibrary, возвращает 3221225622. ![]() Это сообщение отредактировал(а) becks - 30.1.2012, 16:34 |
||||||||
|
|||||||||
Dem_max |
|
||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1780 Регистрация: 12.4.2007 Репутация: 16 Всего: 39 |
Как то невероятно.
Значит это какая то другая функция в другом модуле. -------------------- Американские программисты долго не могли понять, почему русские при зависании Windоws всё время повторяют "Твой зайка написал" ("Yоur bunnу wrоte") |
||||
|
|||||
becks |
|
||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 165 Регистрация: 6.7.2010 Репутация: нет Всего: нет |
Сам в шоке, без шуток.
Только что еще раз проверил, больше никаких объявлений нет. |
||||
|
|||||
feodorv |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2214 Регистрация: 30.7.2011 Репутация: 9 Всего: 45 |
Гм. Вообще-то, 3221225622 = 0xc0000096, что больше похоже на код исключения... А Вы SetLastError(0) перед LoadLibrary делаете?
-------------------- Напильник, велосипед, грабли и костыли - основные инструменты программиста... |
||||
|
|||||
Static |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 185 Регистрация: 6.11.2008 Репутация: нет Всего: 2 |
Относительные пути к dll во время обычного запуска и во время отладки правильно указаны?
--------------------
Я не настолько безнадежен, как кажется... |
|||
|
||||
12usver12 |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 247 Регистрация: 5.1.2007 Репутация: 1 Всего: 1 |
сделай GetCurrentDirectory во время отладки и сравни с путем своей дллки
|
|||
|
||||
GremlinProg |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2706 Регистрация: 9.8.2005 Где: Тюмень Репутация: 99 Всего: 106 |
по теме, т.е. конкретно: почему при отладке не подгружается, а без нее - подгружается, соглашусь с последними постами,
а вот что касается остального + буквально на днях обсуждали аналогичную тему: 1. сомневаюсь, что таким экспортом получится импортировать GetProcAddress(dllInstance, "GetFactsFromText"), т.к. имя функции модифицируется в соответствии с принятым соглашением вызова в dll, 2. прототипы стоит объявить примерно так:
-------------------- "Гений всегда разумнее, чем умнее. Ум — это машина, разум — водитель этой машины." |
|||
|
||||
![]() ![]() ![]() |
Правила форума "C/C++: Системное программирование и WinAPI" | |
|
На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы . Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |