Ошибка File not found

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Debugger
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1667
Зарегистрирован: 17.06.2006 (Сб) 15:11

Ошибка File not found

Сообщение Debugger » 13.02.2010 (Сб) 21:21

Есть библиотека, написанная на Сях (viewtopic.php?f=1&t=41429). В коде объявлена так:
Код: Выделить всё
Private Declare Function MyFunc Lib "dlltest.dll" (...) As Long

На моём ПК всё работает. А на другом компьютере программа работать отказалась, выкидывая ошибку "File not found: dlltest.dll" на первом вызове функции из этой библиотечки. Я пробовал ложить библиотечку в папку с программой, в system32 - ничего не помогло. Что делать?
P.S. ChDir'ить пробовал.
P.S.S. Разница между моим ПК и "другим" - язык ОС. У меня - русский, на "другом" - английский.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Ошибка File not found

Сообщение Хакер » 13.02.2010 (Сб) 21:24

В DllEntryPoint лажа. Если DllEntryPoint возвращает 0 на DLL_PROCESS_ATTACH, VB радостно говорит FIle not found.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Debugger
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1667
Зарегистрирован: 17.06.2006 (Сб) 15:11

Re: Ошибка File not found

Сообщение Debugger » 13.02.2010 (Сб) 22:21

Нет,
Код: Выделить всё
return TRUE;

У меня всё работает. А на английской ОС не пашет.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Ошибка File not found

Сообщение Хакер » 13.02.2010 (Сб) 22:56

Ну, вобщем, VB всегда говорит FIle not found, когда LoadLibraryA обломалась. Если файл есть, он корректен, но она обломалась, значит DllEntryPoint вернул 0. Но, мало ли, может быть другая какая-то причина.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Debugger
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1667
Зарегистрирован: 17.06.2006 (Сб) 15:11

Re: Ошибка File not found

Сообщение Debugger » 16.02.2010 (Вт) 20:30

Да, LoadLibrary обламывается. Выполняю у себя следующий код:
Код: Выделить всё
    a = LoadLibrary("dlltest.dll")
    l = GetLastError()

У меня: a=число, l=0
У другого компа: a=0, l=0
Так если возникает ошибка, почему l=0?

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Re: Ошибка File not found

Сообщение Viper » 16.02.2010 (Вт) 20:39

Debugger писал(а):Да, LoadLibrary обламывается. Выполняю у себя следующий код:
Код: Выделить всё
    a = LoadLibrary("dlltest.dll")
    l = GetLastError()

У меня: a=число, l=0
У другого компа: a=0, l=0
Так если возникает ошибка, почему l=0?
Потому что надо использовать Err.LastDllError.
Весь мир матрица, а мы в нем потоки байтов!

jangle
Википедик
Википедик
Аватара пользователя
 
Сообщения: 3013
Зарегистрирован: 03.06.2005 (Пт) 12:02
Откуда: Нидерланды

Re: Ошибка File not found

Сообщение jangle » 16.02.2010 (Вт) 20:49

Debugger писал(а):На моём ПК всё работает. А на другом компьютере программа работать отказалась, выкидывая ошибку "File not found: dlltest.dll" на первом вызове функции из этой библиотечки. Я пробовал ложить библиотечку в папку с программой, в system32 - ничего не помогло. Что делать?


Выложили DLL библиотеку в форум, кажется я знаю в чем дело :)

Debugger
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1667
Зарегистрирован: 17.06.2006 (Сб) 15:11

Re: Ошибка File not found

Сообщение Debugger » 16.02.2010 (Вт) 21:53

Посмотрел код ошибки. 14001.
MSDN писал(а):ERROR_SXS_CANT_GEN_ACTCTX
14001 (0x36B1) The application has failed to start because its side-by-side configuration is incorrect. Please see the application event log or use the command-line sxstrace.exe tools for more detail.

Боже мой...


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 16

    TopList  
cron