Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Общие вопросы по .NET и C# > Не находит dll в локальной папке


Автор: SwordOfDeath 11.12.2010, 20:47
Привет,

В общем проблема вот в чем: Есть unmanaged dll которая лежит вместе с managed программой в одной папке и на машине где ведется разработка все подключается нормально и работает.
А при запуске на другой машине система ругается: "Не удается загрузить DLL "repeater.dll": Не найден указанный модуль. (Исключение из HRESULT: 0x8007007E)"

dll в проект никак не подключал а просто использую
Код

[DllImport("repeater.dll", CharSet = CharSet.Ansi)]


А самое странное что "regsvr32 repeater.dll" тоже не может найти эту dll!

Подскажите пожалуйста что нужно сделать что бы система увидела эту dll.

Автор: reborn 11.12.2010, 21:40
SwordOfDeath, а может ее дейсвительно нет ( ну может забыли поставить Copy Always )

Автор: SwordOfDeath 11.12.2010, 22:19
Ну я еще не совсем дурной что бы dll вообразить...
Эм, dll билдится отдельно и копируется вручную...

И как вы себе представляете я полез бы на форум спрашивать не удостоверившись что библиотека реально лежит в той же директории. Как видите я даже пытался её зарегистрировать. Но система её в упор не видит... В то же время у меня на машине все и без регистрации.

Возможно это важно:
На системе где разрабатываю и на системе где тестирую стоит Windows 7 x86(32)
Библиотеку и прогу собираю соответственно.


Автор: reborn 12.12.2010, 00:11
SwordOfDeath, да Вы не сердитесь так, просто я лично забывал тоскать с собой либы ( не задал пар-тр "copy always" ), иногда порой можно не увидить очевидного , поэтому и я Вас попросил на всякий случай перепроверить.

Вообще как-то странно, что ОС ее не видит.

И что? Даже dumpbin не в силах увидить Вашу либу?

Автор: SwordOfDeath 12.12.2010, 00:42
Решил проблему! Оно сволочь ерор неправильный выводит !!! Оно какую-то dll из Redistributable не находит, а я себе мозги парю и в чем проблема понять не могу =\ Это печально!

Это потому что я не установил Redistrubutable, таки я действительно не внимательный =\

Но это баг - что оно ругается на мою dll и что её нельзя зарегистрировать... бред какой-то...

Автор: Ky7m 12.12.2010, 00:43
А если указать полный относительный путь к библиотеке? Будет работать?

Автор: SwordOfDeath 12.12.2010, 01:04
Без redistributable - нет! Тоесть оно его даже в system32 не видит... вообще напрочь dll не воспринимает.
Тоесть прога запускается нормально! Но при первом обращении(dllimport в динамически создаваемом объекте класса)к этой dll - вылетает!

Автор: Ky7m 12.12.2010, 10:48
Цитата(SwordOfDeath @ 12.12.2010,  01:04)
Без redistributable - нет! Тоесть оно его даже в system32 не видит... вообще напрочь dll не воспринимает.
Тоесть прога запускается нормально! Но при первом обращении(dllimport в динамически создаваемом объекте класса)к этой dll - вылетает!

То есть вариант: @"c:\my.dll" - не прошел.
Значит предположу следующее библиотека ваша и собиралась Вами, а можно эту самую библиотеку и пару примеров импорта выложить в общий доступ, я хочу проверить её у себя. На мой взгляд, есть вероятность отличная от нуля, что библиотека не работает!

Автор: jonie 12.12.2010, 15:19
Цитата(SwordOfDeath @ 12.12.2010,  01:04)
Без redistributable - нет! Тоесть оно его даже в system32 не видит... вообще напрочь dll не воспринимает.
Тоесть прога запускается нормально! Но при первом обращении(dllimport в динамически создаваемом объекте класса)к этой dll - вылетает!

Ну а чтобы хотели вы? У вас происходит системный вызов LoadLibrary, который падает. Вам наверняка нужны Microsoft Visual C Runtime библиотеки нужных версий, т.к. вы собирали Сишную либу в режиме Multithreaded DLL ...

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)