2013-09-10 2 views
0

У меня есть некоторая dll, которую я не могу загрузить с использованием метода ctypes.open(). Я понятия не имею, почему. Он имеет функции C extern, все остальные DLL с одного и того же пути загружаются правильно.не может загрузить dll с помощью ctypes.open()

В FF 8 DLL загружается без проблем, я делаю PF 22 без каких-либо успехов. Цените свою помощь здесь.

Guy

+0

Любые сообщения об ошибках? – mhenke

+0

[Loader] Не удалось загрузить «chrome: //Ext/content/SettingsFF.js» - Ошибка: не удалось открыть библиотеку myDll.dll <остальная часть стека здесь> – Guy

+0

Это также может означать, что она не нашла dll. – mhenke

ответ

0

Это было связано с тем, что в моей среде PATH был «C: \ Program Files (x86) \ Microsoft SDK \ Windows \ v7.0A \ Bin». Не знаю, почему это связано. Но я изучу его дальше.

+0

Вероятно, загрузчик ломался, когда он столкнулся с символом пробела в переменной PATH. –

0

Поскольку он работал раньше, я думаю, ASLR enforcement на Vista, и позже. IIRC, вся функция LoadLibrary() подключена для предотвращения загрузки DLL-файлов без ASLR во время выполнения.

Попробуйте создать свою DLL с помощью /DYNAMICBASE.

Если это не так, то, по всей вероятности, ваша DLL не может быть найдена. Попробуйте использовать абсолютные пути и убедитесь, что путь действительно правильный.

+0

Я попробую ваш первый вариант, спасибо. Что касается пути, это определенно не проблема. – Guy

+0

Он построен с флагом/DYNAMICBASE. Не работает. – Guy

Смежные вопросы