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

Из двух независимых app с общей БД

Добавлено: 11 Сентябрь 2021, 11:20
gopstop2007
Уважаемые помогите, напомните, запамятовал, делал давно последний раз в С6.3 сейчас пытаюсь сделать в С10 и не получается.
Есть два app (exe), оба в project как EXE и DLL с общим DCT.

Нужно один app PRINTED (a2) сделать, как DLL и связать его другим app MedicExs (a1) - EXE.
Сменил в (a2) Project с EXE на DLL скомпилировал - ошибок нет.
Добавил (a2) lib в (a1) при компиляции (a1) ошибки
Spoiler
Duplicate symbol: $FIRM::ADRESS in PRINTED, original file MedicExs.obj - C:\Program_2017\MedicEx\map\release\MedicExs.MAP:1
Duplicate symbol: $FIRM::DATE in PRINTED, original file MedicExs.obj - C:\Program_2017\MedicEx\map\release\MedicExs.MAP:2
Duplicate symbol: $FIRM::DATEOFISSUEOFPHYSICIANCERT in PRINTED, original file MedicExs.obj - C:\Program_2017\MedicEx\map\release\MedicExs.MAP:3
Duplicate symbol: $FIRM::NAMEANDDEGREEOFPHYSICIAN in PRINTED, original file MedicExs.obj - C:\Program_2017\MedicEx\map\release\MedicExs.MAP:4
Duplicate symbol: $FIRM::NAMEOFPHYSICIANCERTIFICATINGAU in PRINTED, original file MedicExs.obj - C:\Program_2017\MedicEx\map\release\MedicExs.MAP:5
Duplicate symbol: $FIRM::SIGNATUREOFPHYSICIAN in PRINTED, original file MedicExs.obj - C:\Program_2017\MedicEx\map\release\MedicExs.MAP:6
Ругается на глобальные данные которые в DCT, которые используют оба app.
Помню, что нужно поставить чекеты в Global Properties, а вот где и в каком порядке не помню :(
Спасибо за внимание.

Из двух независимых app с общей БД

Добавлено: 11 Сентябрь 2021, 12:10
Дед Пахом
В справке раздел "Creating a .DLL (Sub-Application)" всё подробно описывает.

Из двух независимых app с общей БД

Добавлено: 11 Сентябрь 2021, 15:05
kreator
Надо в одном поставить (в свойствах App) "Generate all files declaration". В этом же снять галку "Generate template globals and ABC's as EXTERNAL". А в другом App сделать соответственно наоборот.

Из двух независимых app с общей БД

Добавлено: 12 Сентябрь 2021, 17:33
gopstop2007
kreator писал(а): 11 Сентябрь 2021, 15:05 Надо в одном поставить (в свойствах App) "Generate all files declaration". В этом же снять галку "Generate template globals and ABC's as EXTERNAL". А в другом App сделать соответственно наоборот.
Не работает.
Дед Пахом писал(а): 11 Сентябрь 2021, 12:10 В справке раздел "Creating a .DLL (Sub-Application)" всё подробно описывает.
Спасибо, но не отличается от multi=dll, не получается.
Проблема в том, что два APP, в одном (App1) используется MAV ODBC, второй (App2) FRB Report. Они не дружат по формату данных используемых в MAV.
App1 на MAV ODBC - программа с наполнением данных. App2 - только для печати FRB отчетов. Оба независимые EXE файлы, хотелось бы объединить в один EXE.

Из двух независимых app с общей БД

Добавлено: 12 Сентябрь 2021, 17:45
kreator
gopstop2007 писал(а): 12 Сентябрь 2021, 17:33 Не работает.
Я написал как у меня. И у меня работает. Если посмотреть на пример в поставке SV, то там так как я написал. Вы попробуйте сторонние классы загнать в одну App. В ту, где генерятся описание всех файлов и компилируются все ABC-классы.

Из двух независимых app с общей БД

Добавлено: 13 Сентябрь 2021, 1:52
Admin
kreator писал(а): 12 Сентябрь 2021, 17:45 В ту, где генерятся описание всех файлов и компилируются все ABC-классы.
Я в крупной программе перенес классы в отдельную DLL, напрягало по каждому изменению классов перекомпилировать основную DLL с файлами. Очень уж долго.

Из двух независимых app с общей БД

Добавлено: 13 Сентябрь 2021, 10:16
gopstop2007
kreator писал(а): 12 Сентябрь 2021, 17:45
gopstop2007 писал(а): 12 Сентябрь 2021, 17:33 Не работает.
Я написал как у меня. И у меня работает. Если посмотреть на пример в поставке SV, то там так как я написал. Вы попробуйте сторонние классы загнать в одну App. В ту, где генерятся описание всех файлов и компилируются все ABC-классы.
Спасибо. А возможно, что то попроще, есть ли возможность запретить в моей подключаемой APP2 (FRB) обращаться, видеть, исключить из списка в DCT определенные файлы, в моем случае MAV ODBC?
Указать список файлов в APP2 (FRB), у которых структура (MAV) в DCT и которые не нужны в APP2 (FRB)?

Из двух независимых app с общей БД

Добавлено: 13 Сентябрь 2021, 11:20
kreator
Каждая App генерит описание только тех файлов, которые в ней используются. Посмотрите файл app2.clw. Только в любом случае они должны быть с опциями "External", "DLL". Опять же, декларация таблиц не влияет на работу с ними. Если Вы их не используете в App, в чём проблема?

Из двух независимых app с общей БД

Добавлено: 13 Сентябрь 2021, 13:41
gopstop2007
Спасибо всем, решил. Отключил в декларациях индивидуально каждый файл в глобальных настройках.