Проблема "разработчика" при работе с массивами

Общие вопросы по оборудованию и программному обеспечению Компании ДЭП
Аватара пользователя
Юрий Сметанин
Сообщения: 153
Зарегистрирован: 13 дек 2004, 17:17
Откуда: Москва

Сообщение Юрий Сметанин » 04 фев 2005, 16:50

Столкнулся со следующей проблемой в "разработчике" (версия 5.0.1.12):

Пытаюсь записать данные в массив, который объявлен как глобальная переменная. Проект не компелируется, выдает следующие сообщения:

Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
_global.c:

Borland Implib Version 3.0.22 Copyright (c) 1991, 2000 Inprise Corporation
Name: '_global' Ext: '.dll' Base: 0x00000000
Name: 'LibMain34482.dll' Ext: '.dll' Base: 0x00000000
Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
b.c:
Error E2034 b.c 45: Cannot convert '__ARR<unsigned short,v_DGlobItem0,struct_v,__TV<struct_v> >::S<&struct_v::DGlobItem0>' to 'v_DGlobItem0' in function b()
Error E2034 b.c 48: Cannot convert 'v_DGlobItem0' to '__ARR<unsigned short,v_DGlobItem0,struct_v,__TV<struct_v> >::S<&struct_v::DGlobItem0>' in function b()
*** 2 errors in Compile ***


Если тот же самый массив объявлен как локальная переменная в данном блоке, то все компилируется нормально. Если мне не изменяет память, в старых версиях такая конструкция работала.

Еще вопрос. Можно ли иметь массив с типом элементов "структура"? Как тогда работать с блоком "Создание структуры по имени"? Что подавать на вход "входная структура"? Структура-то у нас в этом случае внутри массива?
____________________
С уважением,
Юрий.
SIGMA, Ташкент

Равиль
Сообщения: 58
Зарегистрирован: 08 фев 2005, 14:48

Сообщение Равиль » 08 фев 2005, 15:18

Ошибка исправлена в версии 5.0.1.23, тестовый вариант которой можно скачать с сайта сегодня (08.02.05).

Иметь массив с типом элементов "структура" можно.

Для работы с блоком "Создание структуры по имени" можно создать переменную-структуру на панели такую чтобы имена и типы ее подэлементов совпадали с именами и типами подэлементов структуры в массиве (можно скопировать структруру из массива и поместить ее на панель). Если же массив уже имеет данные (количество его элементов не равно 0) то можно прочитать его элемент (например с индексом 0) и использовать его в качестве задающего тип в блоке "Создание структуры по имени".