Страница 1 из 1
Добавлено: 02 ноя 2007, 17:07
Wisdom
Объясните пожалуйста как в Билдере писать аналоговые данные в архив с помощью ваших компонентов.
В примере на Делфи который вы мне дали для этого используется IdepArcPeriodicArc, но Билдер отказывается создавать объект
Код: Выделить всё
[C++ Error] index.cpp(29): E2352 Cannot create instance of abstract class 'IdepArcPeriodicArc'
[C++ Error] index.cpp(29): E2353 Class 'IdepArcPeriodicArc' is abstract because of '__stdcall IdepArcPeriodicArc::Get_Id(int &) = 0'
Как с этим быть? Как зовут живого наследника, которого можно использовать? В документации не нашёл.
Добавлено: 08 ноя 2007, 14:03
Dino
Интерфейс архива можно запросить через список архивов у компонета TdepArcStorage:
Код: Выделить всё
/*получаем интерфейс опрделенного архива (если архива нет в хранилище, то он будет создан)*/
TdepArcStorage* Storage = new TdepArcStorage(NULL);
_di_IdepArcPeriodicArc fArc;
Storage->ListPeriodicArc->Add2(
"", /*название архива (если пустая строка, то название будет задано автоматически*/
taPeriodicAnalog, /*тип архива*/
0, /*время хранения в днях, если 0 то не чиститься вообще*/
7, /*актуальность данных в днях* (данные могут быть записаны с меткой времени за последние 7 дней)*/
false, /*удалять запись об архиве, если его перестанут вести*/
tpMinute, /*тип периода*/
1, /*кол-во периодов*/
0, /*служебный параметр*/
fArc);
Добавлено: 30 ноя 2007, 16:10
Wisdom
В продолжение перевода делфийских кодов подскажите как теперь читать аналоговые параметры.
Надо получить имя параметра, но у самого TdepArcPeriodicAnalogDataRecord нет IdPar
Мне казалось, делается так:
Код: Выделить всё
TdepArcPar * par;
_di_IdepArcListViewGroupRefParRead list_ref_par =
depArcPeriodicAnalogViewRead->ListViewGroupRefParRead;
Storage->ListPar->FindById(
list_ref_par->Items[i]->IdPar
, par);
String name = par->Name;
Но тут он говорит ошибку
Код: Выделить всё
[Linker Error] Unresolved external 'System::__linkproc__ __fastcall CheckAutoResult()' referenced from C:\PROGRAM FILES\BORLAND\CBUILDER6\LIB\RELEASE\VCLE.LIB|syssupp
Как быть?
Добавлено: 03 дек 2007, 12:59
Dino
Возможно, что данная проблема в lib файлах С++Builder 6.
Решение проблемы - добавьте в Ваш проект файл syssupp.cpp, расположенный в Program Files\DEP\Components\DEP60.
Добавлено: 03 дек 2007, 14:51
Wisdom
Добавить это в смысле "Project->Add To Project"?
Я добавил таким образом пути прописал.
Даже
#include "syssupp.cpp" написал
При компиляции он выдает
И окошко с предложением создать новый Юнит/Форму/Текстовый файл.
Добавлено: 03 дек 2007, 15:49
Dino
Добавить это в смысле "Project->Add To Project"?
Да, все правильно. Далее выбрать файл syssupp.cpp в папке Program Files\DEP\Components\DEP60 и запустить сборку проекта.
Нельзя писать: #include "syssupp.cpp".
Чтобы исчезла ошибка
соберите проект весь заново (меню Project->Build <имя Вашего проекта>).
Данная проблема проявляется только в С++Builder 6.
Добавлено: 03 дек 2007, 16:01
Wisdom
Все заработало.
Спасибо.
Добавлено: 06 дек 2007, 18:06
Тех. поддержка
Wisdom писал(а):Все заработало.
Спасибо.
Пожалуйста!