powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Не найдена библиотека
12 сообщений из 12, страница 1 из 1
Не найдена библиотека
    #38264310
glamis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть проект. В него входит библиотека utility.vcx. Построен app. При работе проекта вызывается внешняя форма. Для работы формы треюуется utility.vcx В formset.init пишу: Set classlib to utility addi.

В ответ: classlib not found.
...
Рейтинг: 0 / 0
Не найдена библиотека
    #38264396
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
glamis,

либа добавлена в проект? ошибка на этапе отладки или в экзешнике? (если первое - а путь к либе фоксу на момент выполнения известен?)
...
Рейтинг: 0 / 0
Не найдена библиотека
    #38264405
glamis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tanglir,

на этапе исполнения.
...
Рейтинг: 0 / 0
Не найдена библиотека
    #38264421
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если VCX внутри EXE а форма снаружи, то из формы Set classlib to utility не сработает. Это надо сделать внутри EXE а в форме просто пользоваться.

Суть следующая: файлы закомпилированные внутрь EXE (или APP) не видны из кода запускаемого из внешних модулей.
...
Рейтинг: 0 / 0
Не найдена библиотека
    #38264453
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как вариант в процедурный файл закомпилированный внутрь EXE вставить функцию:
Код: sql
1.
2.
3.
func MyNewObject
lpara tcClass, tcLib
return NewObject(tcClass, tcLib)



Из внешнего кода пользовать MyNewObject()
...
Рейтинг: 0 / 0
Не найдена библиотека
    #38264514
glamis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima T,

Вставил в проект:

******Progr _myAddLib
lpara _lib
set classlib to (_lib) addi


В форме:
=_myAddlib('utility')

Не помогло
...
Рейтинг: 0 / 0
Не найдена библиотека
    #38264520
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
glamisНе помогло
Прям так и написано "Не помогло" ? Ошибка какая, в каком месте кода?
если ты сделал _myAddLib.prg то это не поможет, т.к. это файл внутри проекта и точно так же недоступен извне.
...
Рейтинг: 0 / 0
Не найдена библиотека
    #38264527
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
допустим у тебя есть свой процедурный файл MyProc.prg
где-то при старте он подцепляется
Код: sql
1.
set proc to MyProc


вот в него надо добавить
Код: sql
1.
2.
3.
4.
func _myAddLib
lpara _lib
set classlib to (_lib) addi
return
...
Рейтинг: 0 / 0
Не найдена библиотека
    #38264552
sg12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
glamis

Все библиотеки практичнее собрать в одной директории и в проекте подключать их сразу после SET PATH TO одной командой SET CLASSLIB TO через запятые.
Опцией ADDITIVE пользоваться когда в ней действительно есть необходимость.

Если только какой-то класс из библиотеки нужен только для конкретной формы, то можно его установить на форму на этапе проектирования как объект.
Или подключать в форме с помощью ADDOBJECT/CREATEOBJECT/NEWOBJECT как свойство формы.

И вообще, что у вас находится в библиотеке utility.vcx, для чего она нужна форме?
Сами собственно утилиты практичнее собрать все в один глобальный класс и подключать его сразу к goApp.
Тогда морока с процедурными вызовами процедур у вас исчезнет.
...
Рейтинг: 0 / 0
Не найдена библиотека
    #38264576
glamis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima T,

Все она находит. wait выдает, что биб-ка есть. А класс не строится - пишет error instaled. Classib not found

my_addclasslib('utility')
WAIT WINDOW IIF('UTILITY' $ SET('classlib'),'Библиотека есть','Библиотеки нет') TIMEOUT 5
This.AddObject('Menulib1','Menulib')
...
Рейтинг: 0 / 0
Не найдена библиотека
    #38264643
glamis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima T,

помогло:
_myAddClassLib
_myNewObject
...
Рейтинг: 0 / 0
Не найдена библиотека
    #38264661
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
glamisDima T,

помогло:
_myAddClassLib
_myNewObject
Я NewObject() использую. Для NewObject() не надо set classlib делать.
Там второй параметр название библиотеки.
Еще третий параметр есть
Код: sql
1.
2.
cInApplication 
Specifies the Visual FoxPro application (.exe or .app) containing the .vcx file you specify with cModule. You must include an extension for the application. CInApplication is ignored if cModule is omitted, or if cInApplication is the empty string or the null value.


т.е. тут при вызове в форме имя EXE указать.
Попробуй, может и не надо никаких _myNewObject()
Правда я отказался от указания имени EXE в NewObject() т.к. отлаживать не удобно, EXE надо пересобирать если класс поправил. И ошибки не очень удобно ловить. Поэтому использовал _myNewObject() как выше писал.
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Не найдена библиотека
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]