Объект ObjGetKau в 8.1, не могу подключить
Модераторы: m0p3e, edward_K, Модераторы
-
- Местный житель
- Сообщения: 2898
- Зарегистрирован: 24 июн 2005, 12:12
- Откуда: Иркутская область
Объект ObjGetKau в 8.1, не могу подключить
Объектный интерфейс ObjGetKau
В общем проблема в следующем:
#include getKau.vih
.................
var iGetKau : GetKau;
................
событие:
GetVipInterface(iGetKau)
LoadVipRef(iGetKau,'ObjGetKau')
LoadVipInterface(iGetKau)
компилируется всё на ура (с одной из фукнций), НО при запуске Галактики с любой функцией идет ошибка "ExObjIfcNoLoad" - типа не найден объект в загруженных интерфейсах.
Как правильно подключать объектные интерфейсы в 8.1?
Может компоненты где надо указывать или ещё что-то?
При компиляции ресурс F_GetAn.res подключаю (в конфиге через опенресорсес)
В общем проблема в следующем:
#include getKau.vih
.................
var iGetKau : GetKau;
................
событие:
GetVipInterface(iGetKau)
LoadVipRef(iGetKau,'ObjGetKau')
LoadVipInterface(iGetKau)
компилируется всё на ура (с одной из фукнций), НО при запуске Галактики с любой функцией идет ошибка "ExObjIfcNoLoad" - типа не найден объект в загруженных интерфейсах.
Как правильно подключать объектные интерфейсы в 8.1?
Может компоненты где надо указывать или ещё что-то?
При компиляции ресурс F_GetAn.res подключаю (в конфиге через опенресорсес)
-
- Местный житель
- Сообщения: 2898
- Зарегистрирован: 24 июн 2005, 12:12
- Откуда: Иркутская область
edward_K
закоментарил - разницы никакой.
прочитал что если объявить переменную как:
iGetKau : ObjGetKau (GetKau) new;
то инициализация происходит автоматически НО у меня при вызове метода объекта вылетает ошибка ExObjIfcNoLoad (когда не может найти объектный интерфейс в ресурсах, хотя F_GETAN.RES в репозитарии есть).
Если же объявить как
iGetKau : ObjGetKau;
То ошибка при обращении вылетает ExObjIfcNoInit - интерфейс не проинициализирован.
Если попытатся вставить туда LoadVipInterface то получаю ошибку "ExObjIfcBadVar - переменная не является ссылкой на VIP-интерфейс."
Независимо какбы не объявлял переменную.
И ещё, у меня на вих ругается на последнюю строчку
VipInterface GetKau implements ObjGetKau #Licensed_Free;
Если закоментить лисенс фри - то ругатся перестает. Отчего это не знаю, но думаю это было для старых версий
В общем ощущение такое что надо как то указать компоненту, где лежит этот объект, а как это сделать я что-то понять не могу.
А вы Сами использовали объектные интерфейсы в 8.1 ?
закоментарил - разницы никакой.
прочитал что если объявить переменную как:
iGetKau : ObjGetKau (GetKau) new;
то инициализация происходит автоматически НО у меня при вызове метода объекта вылетает ошибка ExObjIfcNoLoad (когда не может найти объектный интерфейс в ресурсах, хотя F_GETAN.RES в репозитарии есть).
Если же объявить как
iGetKau : ObjGetKau;
То ошибка при обращении вылетает ExObjIfcNoInit - интерфейс не проинициализирован.
Если попытатся вставить туда LoadVipInterface то получаю ошибку "ExObjIfcBadVar - переменная не является ссылкой на VIP-интерфейс."
Независимо какбы не объявлял переменную.
И ещё, у меня на вих ругается на последнюю строчку
VipInterface GetKau implements ObjGetKau #Licensed_Free;
Если закоментить лисенс фри - то ругатся перестает. Отчего это не знаю, но думаю это было для старых версий
В общем ощущение такое что надо как то указать компоненту, где лежит этот объект, а как это сделать я что-то понять не могу.
А вы Сами использовали объектные интерфейсы в 8.1 ?
-
- Заслуженный деятель интернет-сообщества
- Сообщения: 5188
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: SPB galaxy spb
добавте в проект
#ifdef Atl51
#define Licensed_Free Licensed(Free)
#else
#define Licensed_Free
#end
и еще
чего то мне кажется что у вас не идет определение компоненты в vih
#ifdef ComponentVersion
#Component "F_GetAn"
#end
сделайте там ошибку.
вообще по хорошему свои фейсы нужно объявлять в отдельном файле и компилить сначала его. а потом сам фейс, иначе фейс могет уйти в другую компоненту.
#ifdef Atl51
#define Licensed_Free Licensed(Free)
#else
#define Licensed_Free
#end
и еще
чего то мне кажется что у вас не идет определение компоненты в vih
#ifdef ComponentVersion
#Component "F_GetAn"
#end
сделайте там ошибку.
вообще по хорошему свои фейсы нужно объявлять в отдельном файле и компилить сначала его. а потом сам фейс, иначе фейс могет уйти в другую компоненту.
-
- Посетитель
- Сообщения: 39
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: Архангельская область ООО "Фалькон плюс"
- Контактная информация:
ошибка "ExObjIfcNoLoad" - не найден объект в загруженных интерфейсах возникает, потому что нет вызова функций InitServKAU, DoneServKAU
#include getKau.vih
Interface test;
...
Var iGetKau : GetKau;
...
HandleEvent
CmInit:
{ InitServKAU; ...}
CmDone:
{ DoneServKAU; ...}
End;
End.
Компилируется на 7.12 но не находит функции InitServKAU, DoneServKAU на 8.10
#include getKau.vih
Interface test;
...
Var iGetKau : GetKau;
...
HandleEvent
CmInit:
{ InitServKAU; ...}
CmDone:
{ DoneServKAU; ...}
End;
End.
Компилируется на 7.12 но не находит функции InitServKAU, DoneServKAU на 8.10
-
- Заслуженный деятель интернет-сообщества
- Сообщения: 5188
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: SPB galaxy spb
InitServKAU, DoneServKAU на 8.10 не нужны( и они не объявлены для vip) - они сами запускаются при вызове функций из g_txo.dll
причина все таки в том что при компиляции vih объявление компоненты не прошло.
надо в проект еще добавить вам
#define ComponentVersion
а еще лучше конечно все inc подцепить -через
#include galnet.inc end;
если они у вас присутствуют.
причина все таки в том что при компиляции vih объявление компоненты не прошло.
надо в проект еще добавить вам
#define ComponentVersion
а еще лучше конечно все inc подцепить -через
#include galnet.inc end;
если они у вас присутствуют.
Помогите! Та же проблема. Такой интерфейс:
#include GetKau.vih
interface Proba
view;
HandleEvent
cmInit:
{
var iGetKau : GetKau;
iGetKau.ClearFilter;
}
end;
end.
GetKauMy.vih:
#component "F_GETAN"
#ifndef _GetKau_vih_Included
#define _GetKau_vih_Included
!-------------------------------------------------------------------------------
ObjInterface ObjGetKau;
Function GetMarkerName (wKau : Word) : String;
Function GetCodeKau (wIntMode : Word; var wKau : Word; var cKau : Comp) : LongInt;
Procedure ClearFilter;
Procedure SetFilter (wKau : Word; cKau : Comp);
end;
!-------------------------------------------------------------------------------
VipInterface GetKau implements ObjGetKau;
!-------------------------------------------------------------------------------
#end // GetKau_vih_Included
Компилируется без проблем, но при запуске выдает ExObjIfcNoLoad. В проекте #define ComponentVersion добавил, к тому же #component "F_GETAN" есть. Почему еще может не работать?
#include GetKau.vih
interface Proba
view;
HandleEvent
cmInit:
{
var iGetKau : GetKau;
iGetKau.ClearFilter;
}
end;
end.
GetKauMy.vih:
#component "F_GETAN"
#ifndef _GetKau_vih_Included
#define _GetKau_vih_Included
!-------------------------------------------------------------------------------
ObjInterface ObjGetKau;
Function GetMarkerName (wKau : Word) : String;
Function GetCodeKau (wIntMode : Word; var wKau : Word; var cKau : Comp) : LongInt;
Procedure ClearFilter;
Procedure SetFilter (wKau : Word; cKau : Comp);
end;
!-------------------------------------------------------------------------------
VipInterface GetKau implements ObjGetKau;
!-------------------------------------------------------------------------------
#end // GetKau_vih_Included
Компилируется без проблем, но при запуске выдает ExObjIfcNoLoad. В проекте #define ComponentVersion добавил, к тому же #component "F_GETAN" есть. Почему еще может не работать?