Проблема с MCOriginCountry в 810
Модераторы: m0p3e, edward_K, Модераторы
-
- Местный житель
- Сообщения: 254
- Зарегистрирован: 08 июн 2007, 08:26
- Откуда: Красноярск
- Контактная информация:
Проблема с MCOriginCountry в 810
Поискал решение проблемы на форуме - не нашел!
Как компилировать я понял, да и не было проблем с компиляцией!
Вообщем есть форма СФ которая исправно работала в 712, сейчас с переходом на 810 надо перекомпилировать эту форму. В этой форме используется интерфейс MCOriginCountry, форма компилируется на отлично, но вот при запуске ее выдоется ошибка о необработанном исключении с текством "Ошибка закрузки интерфейса MCOriginCountry из ресурсного файла".
В начале формы прописано так
.declare
#ifndef __MCORIGINCOUNTRY_VIH
#define __MCORIGINCOUNTRY_VIH
#ifdef ComponentVersion
#component "L_SF"
#endif
ObjInterface IMCOriginCountry;
function getCountryName(cMC: comp; cParty: comp): string;
function getGTDNumber(cParty: comp): string;
end;
VipInterface MCOriginCountry implements IMCOriginCountry
#ifdef ATL51
Licensed (FREE)
#end
;
#end
.enddeclare
А в коде такой вызов:
var iCountry: MCOriginCountry;
SrcCountry := ’-’;
GTDNumber := ’-’;
if (vSpSchF.SpSchF.PrMC = 1) {
SrcCountry := if (trim(iCountry.getCountryName(vSpSchF.SpSchF.cMCUsl, vSpSchF.SpSchF.cParty)) = ’’, ’-’, iCountry.getCountryName(vSpSchF.SpSchF.cMCUsl, vSpSchF.SpSchF.cParty));
GTDNumber := if (trim(iCountry.getGTDNumber(vSpSchF.SpSchF.cParty)) = ’’, ’-’, iCountry.getGTDNumber(vSpSchF.SpSchF.cParty));
} else
{SrcCountry := ’-’;
GTDNumber := ’-’;
}
В чем проблема не могу понять, может в 8 изменился вызов интерфейса? Хотя в ресурснике L_SF этот интерфейс лежит, все имена и остались без изменений!
Возможно надо использовать так, но это не компилируется:
var iCountry: :IMCOriginCountry;
If (GetVipInterface (iCountry))
Message (‘VIP интерфейс загружен успешно!’);
SrcCountry := ’’;
GTDNumber := ’’;
if (vSpSchF.SpSchF.PrMC = 1) {
SrcCountry := if (trim(iCountry.getCountryName(vSpSchF.SpSchF.cMCUsl, vSpSchF.SpSchF.cParty)) = ’’, ’-’, iCountry.getCountryName(vSpSchF.SpSchF.cMCUsl, vSpSchF.SpSchF.cParty));
GTDNumber := if (trim(iCountry.getGTDNumber(vSpSchF.SpSchF.cParty)) = ’’, ’-’, iCountry.getGTDNumber(vSpSchF.SpSchF.cParty));
} else
{SrcCountry := ’-’;
GTDNumber := ’-’;
}
FreeVIPInterface(iCountry );
Как компилировать я понял, да и не было проблем с компиляцией!
Вообщем есть форма СФ которая исправно работала в 712, сейчас с переходом на 810 надо перекомпилировать эту форму. В этой форме используется интерфейс MCOriginCountry, форма компилируется на отлично, но вот при запуске ее выдоется ошибка о необработанном исключении с текством "Ошибка закрузки интерфейса MCOriginCountry из ресурсного файла".
В начале формы прописано так
.declare
#ifndef __MCORIGINCOUNTRY_VIH
#define __MCORIGINCOUNTRY_VIH
#ifdef ComponentVersion
#component "L_SF"
#endif
ObjInterface IMCOriginCountry;
function getCountryName(cMC: comp; cParty: comp): string;
function getGTDNumber(cParty: comp): string;
end;
VipInterface MCOriginCountry implements IMCOriginCountry
#ifdef ATL51
Licensed (FREE)
#end
;
#end
.enddeclare
А в коде такой вызов:
var iCountry: MCOriginCountry;
SrcCountry := ’-’;
GTDNumber := ’-’;
if (vSpSchF.SpSchF.PrMC = 1) {
SrcCountry := if (trim(iCountry.getCountryName(vSpSchF.SpSchF.cMCUsl, vSpSchF.SpSchF.cParty)) = ’’, ’-’, iCountry.getCountryName(vSpSchF.SpSchF.cMCUsl, vSpSchF.SpSchF.cParty));
GTDNumber := if (trim(iCountry.getGTDNumber(vSpSchF.SpSchF.cParty)) = ’’, ’-’, iCountry.getGTDNumber(vSpSchF.SpSchF.cParty));
} else
{SrcCountry := ’-’;
GTDNumber := ’-’;
}
В чем проблема не могу понять, может в 8 изменился вызов интерфейса? Хотя в ресурснике L_SF этот интерфейс лежит, все имена и остались без изменений!
Возможно надо использовать так, но это не компилируется:
var iCountry: :IMCOriginCountry;
If (GetVipInterface (iCountry))
Message (‘VIP интерфейс загружен успешно!’);
SrcCountry := ’’;
GTDNumber := ’’;
if (vSpSchF.SpSchF.PrMC = 1) {
SrcCountry := if (trim(iCountry.getCountryName(vSpSchF.SpSchF.cMCUsl, vSpSchF.SpSchF.cParty)) = ’’, ’-’, iCountry.getCountryName(vSpSchF.SpSchF.cMCUsl, vSpSchF.SpSchF.cParty));
GTDNumber := if (trim(iCountry.getGTDNumber(vSpSchF.SpSchF.cParty)) = ’’, ’-’, iCountry.getGTDNumber(vSpSchF.SpSchF.cParty));
} else
{SrcCountry := ’-’;
GTDNumber := ’-’;
}
FreeVIPInterface(iCountry );
-
- Местный житель
- Сообщения: 2896
- Зарегистрирован: 24 июн 2005, 12:12
- Откуда: Иркутская область
PViP
Вот вот. Именно.
Пока я не поставил в проект
#define ComponentVersion у меня тоже не подключалось, т.к. в моем ВИХе стояли такие строчки:
#ifdef ComponentVersion
#Component "F_GetAn"
#end
пока я не закоментил первую и третью ЛИБО не сделал дефайн, тоже не находился интерфейс.
Проще сделать дефайн в проекте и тогда должно подцеплять нормально.
Вот вот. Именно.
Пока я не поставил в проект
#define ComponentVersion у меня тоже не подключалось, т.к. в моем ВИХе стояли такие строчки:
#ifdef ComponentVersion
#Component "F_GetAn"
#end
пока я не закоментил первую и третью ЛИБО не сделал дефайн, тоже не находился интерфейс.
Проще сделать дефайн в проекте и тогда должно подцеплять нормально.
-
- Местный житель
- Сообщения: 254
- Зарегистрирован: 08 июн 2007, 08:26
- Откуда: Красноярск
- Контактная информация:
edward_K, проектом получается! Сделал так:
файл make который подкинул випу
файл L_SF_Schfrees_SF.prj
файл MCOriginCountry.vih
а в самом отчете L_SF_Schfrees_SF.rtf дописал вместо
такое вот
Вопрос по .declare открыт, не сомпилируется отчет! Единственный выход компилить проект в vip.
А vih файл с MCOriginCountry в frm 810 я не обнаружил, склолько не искал!
всем спасибо!
файл make который подкинул випу
Код: Выделить всё
#make "L_SF_Schfrees_SF.prj"
Код: Выделить всё
#include MCOriginCountry.vih
#make "MCOriginCountry.vih"
#make "L_SF_Schfrees_SF.rtf"
Код: Выделить всё
#define ComponentVersion
#ifndef __MCORIGINCOUNTRY_VIH
#define __MCORIGINCOUNTRY_VIH
#ifdef ComponentVersion
#Component "L_SF"
#endif
ObjInterface IMCOriginCountry;
function getCountryName(cMC: comp; cParty: comp): string;
function getGTDNumber(cParty: comp): string;
end;
VipInterface MCOriginCountry implements IMCOriginCountry;
#end
Код: Выделить всё
var iCountry: MCOriginCountry;
Код: Выделить всё
var iCountry: MCOriginCountry new;
А vih файл с MCOriginCountry в frm 810 я не обнаружил, склолько не искал!
всем спасибо!