Страница 1 из 1

Декларация файла dBase

Добавлено: 01 Июнь 2009, 16:31
Dias2004
Всем привет.
В процессе разбиения единого EXE-приложения на мульти-DLL столкнулся с проблемой объявления файла dBase.
В изначальном проекте файл (служит для экспорта бухгалтерских данных в 1С:Бухгалтерию) был описан в секции глобальных данных приложения следующим образом:

gExportInvoiceFile FILE,DRIVER('dBase4'),OEM,NAME(GLO:TransferFileName),PRE(gEI),CREATE,BINDABLE,THREAD
Record RECORD
Code STRING(20),NAME('Code')
Price STRING(@n-_9.2),NAME('Price')
Qty STRING(@n-_6.0),NAME('Qty')
. .

После разделения на DLL-ли процедура экспорта уехала в одну из DLL.
Пробовал описать файл в этой DLL - требуется подключить драйвер. При подключении драйвера к DLL все собирается, но при запуске головного EXE-модуля возникает ошибка - обращение по некорректному адресу.

Попробовал описать файл в словаре - не получается в точности описать структуру, теряется информация, необходимая для правильной работы с файлом. Мне удалось только объявить поля типа STRING и декларация файла после генерации кода получилось такая:

gExportInvoiceFile FILE,DRIVER('dBase4'),OEM,NAME(GLO:TransferFileName),PRE(gEI),CREATE,BINDABLE,THREAD
Record RECORD,PRE()
Code STRING(20)
Price STRING(16)
Qty STRING(10)
END
END

Как можно было бы описать руками структуру?
Или как можно было бы описать такую структуру в словаре?
Подскажите пожалуйста, если сталкивались.

Re: Декларация файла dBase

Добавлено: 01 Июнь 2009, 16:36
Игорь Столяров
Можно и так и так - но лучше в словаре.

Используй поле External Name на второй закладке карточки поля для задания атрибута NAME.
Потому, что если ты объявишь "ручками" файл в Global Data (что тоже возможно), генератор не создаст методов для доступа к файлу.