Проблема при подключении DLL через Reference

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
velltar
Начинающий
Начинающий
 
Сообщения: 22
Зарегистрирован: 24.09.2009 (Чт) 18:57

Проблема при подключении DLL через Reference

Сообщение velltar » 24.04.2010 (Сб) 2:20

Доброго времени суток!

Есть проект и к нему нужно прикрепить библиотеку типа 123.dll Которая находится например в тойже папке где и исходники программы (например c:\proect\) Прикрепляю через reference, тестирую прогу, прога находит библиотеку, все работает. Компилирую экзешник. ДАЛЕЕ САМОЕ ГЛАВНОЕ!!! Получается что после компиляции экзешник и длл находятся в одной папке c:\proect и все работает замечательно. НО беру и переношу экзешник и длл в другую папку, например c:\proba запускаю экзешник и он не находит длл в этой же папке, а обращается почемуто к длл из папки c:\proect\, т.е. по идее мне надо чтобы обращение шло к длл которая находится в той же папке что экзешник не в зависимости куда я их перенесу, а по факту обращение идет к той папке которая была указана при подключении через reference. Объясните и помогите решить эту проблему. Всю бошку уже сломал. Нефига не пойму.

Заранее спасибо за советы.

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

Re: Проблема при подключении DLL через Reference

Сообщение Viper » 24.04.2010 (Сб) 7:21

Поскольку DLL была зарегестрирована в папке проекта, то и обращение будет идти именно по этому адресу. Выход - перерегистрировать DLL. Ну или сразу помещать DLL в нужную папку.
Весь мир матрица, а мы в нем потоки байтов!

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

Re: Проблема при подключении DLL через Reference

Сообщение Хакер » 24.04.2010 (Сб) 7:55

Всю бошку уже сломал. Нефига не пойму.

Образец глупости и невежества этот топик.
В References подключаются не DLL, а TLB. Просвещайся.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

velltar
Начинающий
Начинающий
 
Сообщения: 22
Зарегистрирован: 24.09.2009 (Чт) 18:57

Re: Проблема при подключении DLL через Reference

Сообщение velltar » 24.04.2010 (Сб) 12:04

Ну а что мне теперь повеситься, если есть только dll и нет TLB?

iGrok
Артефакт VBStreets
Артефакт VBStreets
 
Сообщения: 4272
Зарегистрирован: 10.05.2007 (Чт) 16:11
Откуда: Сетевое сознание

Re: Проблема при подключении DLL через Reference

Сообщение iGrok » 24.04.2010 (Сб) 12:27

У тебя есть ТЛБ. Просто ты об этом ещё не знаешь.
Читай то, ссылку на что дал Хакер до наступления просветления.
label:
cli
jmp label

SLIM
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1840
Зарегистрирован: 04.04.2008 (Пт) 18:21
Откуда: Краснодар

Re: Проблема при подключении DLL через Reference

Сообщение SLIM » 24.04.2010 (Сб) 21:44

iGrok писал(а):У тебя есть ТЛБ. Просто ты об этом ещё не знаешь.

Откуда такая уверенность то?
velltar писал(а):Ну а что мне теперь повеситься, если есть только dll и нет TLB?

Сделать TLB, для этого почитать соответсвующие доки по IDL и сотворить TLB на MIDL.

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

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

Re: Проблема при подключении DLL через Reference

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

SLIM писал(а):
iGrok писал(а):У тебя есть ТЛБ. Просто ты об этом ещё не знаешь.

Откуда такая уверенность то?

Прикрепляю через reference

iGrok
Артефакт VBStreets
Артефакт VBStreets
 
Сообщения: 4272
Зарегистрирован: 10.05.2007 (Чт) 16:11
Откуда: Сетевое сознание

Re: Проблема при подключении DLL через Reference

Сообщение iGrok » 25.04.2010 (Вс) 0:01

Debugger писал(а):...

Спасибо. )
label:
cli
jmp label

SLIM
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1840
Зарегистрирован: 04.04.2008 (Пт) 18:21
Откуда: Краснодар

Re: Проблема при подключении DLL через Reference

Сообщение SLIM » 25.04.2010 (Вс) 2:44

А, да,что-то я пропустил.
Пишите жизнь на чистовик.....переписать не удастся.....

Vi
Постоялец
Постоялец
 
Сообщения: 739
Зарегистрирован: 25.01.2002 (Пт) 11:03
Откуда: Россия, Ижевск

Re: Проблема при подключении DLL через Reference

Сообщение Vi » 26.04.2010 (Пн) 9:17

DLL/COM Redirection on Windows

DLL/COM redirection is an application isolation strategy employed by corporate administrators on Microsoft® Windows XP, Windows 2000, Windows ME, and Windows 98 SE. It is not available on Windows 95 or Windows 98. On Windows XP, the recommended method for isolating applications is to use side-by-side assemblies.

DLL/COM redirection binds an application to a local version of a component. The local component's files can be kept separate from the system's version of the component in a location that is private to the application. The system's version of the component is globally registered and available to any other applications that bind to it. The local version of the component is reserved for the exclusive use of the application. If necessary, the component files used by the application can be loaded into memory at the same time as the system's component files.

DLL/COM redirection is activated by installing a special file along with a copy of the local component file into the same directory as the application's executable file. The special file is an empty file named after the application executable's file name and appended with .local. For example, to activate DLL/COM redirection for an application named Myapp, the local version of the component and an empty file named Myapp.exe.local must be copied into the folder containing Myapp.exe. This binds the application to the local version of the component rather than the globally shared version of the component.

When an application loads a component file, such as a .dll or .ocx file, Windows first searches for it in the folder where the application's .local and executable file is installed. If found, the application uses that component file regardless of any directory search path defined in the application or the registry. If not found, the component file in the defined search path is used.

The installation utility must do the following to install the application with DLL/COM redirection:

- An empty .local file must be copied into the same folder as the application's executable file.
- All of the components, .dll, and .ocx files used by the application must be copied into the same folder as the application's executable file.
- Isolated COM components must be registered with Windows so that different versions of the assembly will not conflict with each other when loaded into memory at the same time. The registration process requires that, while the implementation of the component can change between versions, certain COM metadata such as CLSID, ProgID, Type Library, and Threading Model cannot.
For additional discussion about DLL/COM redirection, see the following white paper "Implementing Side-by-side Component Sharing".
Vita
Выше головы не прыгнешь, ниже земли не упадешь, дальше границы не убежишь! (с) КВН


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

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

Сейчас этот форум просматривают: Google-бот и гости: 75

    TopList