Source Class - multi dll с чем едят?

Clarion, Clarion 7

Модератор: Дед Пахом

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Аватара пользователя
Admin
Администратор
Сообщения: 3959
Зарегистрирован: 05 Июль 2005, 15:59
Откуда: Хабаровск
Благодарил (а): 25 раз
Поблагодарили: 22 раза
Контактная информация:

Source Class - multi dll с чем едят?

Сообщение Admin »

porutchik писал(а): 09 Февраль 2021, 8:28 у меня все так же
А вы упорный в своей неправоте...
У вас

Код: Выделить всё

GetCount CLASS, THREAD, EXTERNAL, TYPE, MODULE('data_uc002.clw'), LINK('data_uc002.clw',1), DLL(_ABCDllMode_)
Нужно

Код: Выделить всё

GetCount CLASS, THREAD, EXTERNAL, TYPE, MODULE('data_uc002.clw'), LINK('data_uc002.clw',_ABCLinkMode_), DLL(_ABCDllMode_)
Так же в data_uc.app в глобальный embed "Top of export list" вставить экспортируемый класс и функцию:

Код: Выделить всё

INIT@F8GETCOUNT @?
GETNAME@F8GETCOUNTl @?
И тогда ваш пример работает:
2021-02-10_08-57-14.png
2021-02-10_08-57-14.png (5.14 КБ) 1842 просмотра
В таком случае скомпилированный код класса будет один... в data_uc.app

Второй вариант:

Код: Выделить всё

GetCount CLASS, THREAD, EXTERNAL, TYPE, MODULE('data_uc002.clw'), LINK('data_uc002.clw',1), DLL(_ABCDllMode_)
Заменить на

Код: Выделить всё

GetCount CLASS, THREAD, EXTERNAL, TYPE, MODULE('data_uc002.clw'), LINK('data_uc002.clw',1), DLL(0)
Но мне это не нравится... нужно всегда все компилировать, т.к. код класса будет в каждой DLL
Рай совершает ошибки ничуть не реже чем ад. Просто у него хорошая пресса
Аватара пользователя
Admin
Администратор
Сообщения: 3959
Зарегистрирован: 05 Июль 2005, 15:59
Откуда: Хабаровск
Благодарил (а): 25 раз
Поблагодарили: 22 раза
Контактная информация:

Source Class - multi dll с чем едят?

Сообщение Admin »

data_uc.app
переменные будут такие
_ABCLinkMode_ = 1
_ABCDllMode_ = 0
соответственно GetCount скомпилируется и подлинкуется в DLL

test_uc.app
переменные будут такие
_ABCLinkMode_ = 0
_ABCDllMode_ = 1
соответственно GetCount будет использован из внешней DLL (в ней не забыть описание класса, методов и структур экспортировать)
Рай совершает ошибки ничуть не реже чем ад. Просто у него хорошая пресса
Аватара пользователя
Admin
Администратор
Сообщения: 3959
Зарегистрирован: 05 Июль 2005, 15:59
Откуда: Хабаровск
Благодарил (а): 25 раз
Поблагодарили: 22 раза
Контактная информация:

Source Class - multi dll с чем едят?

Сообщение Admin »

Собственно, по причине того что экспорт пришлось ручками делать и спросил про DP_Class, в нем это реализовано.
Рай совершает ошибки ничуть не реже чем ад. Просто у него хорошая пресса
Аватара пользователя
porutchik
Активист
Сообщения: 150
Зарегистрирован: 01 Февраль 2009, 5:35

Source Class - multi dll с чем едят?

Сообщение porutchik »

путь с рукописным заполнением файла экспорта я знаю. если я делал длл с классом для работы с ккм - это один вариант. сделал и забыл. здесь думал шаблон сам должен генерировать, тем более подразумевается работа с длл. в моем случае подразумевалась куча классов... постоянные изменения/добавления. я бы тему не открывал, а просто экспортировал бы класс в каждый апп
Аватара пользователя
Admin
Администратор
Сообщения: 3959
Зарегистрирован: 05 Июль 2005, 15:59
Откуда: Хабаровск
Благодарил (а): 25 раз
Поблагодарили: 22 раза
Контактная информация:

Source Class - multi dll с чем едят?

Сообщение Admin »

porutchik писал(а): 10 Февраль 2021, 8:06 путь с рукописным заполнением файла экспорта я знаю. если я делал длл с классом для работы с ккм - это один вариант. сделал и забыл. здесь думал шаблон сам должен генерировать, тем более подразумевается работа с длл. в моем случае подразумевалась куча классов... постоянные изменения/добавления. я бы тему не открывал, а просто экспортировал бы класс в каждый апп
Сумбурный текст. Ничего не понял. Я описал два варианта. Их и можно использовать.
p.s. Кстати. Заметил еще. Я у себя EXTERNAL не использую у классов. х.з. зачем это. Все вроде и так работает
Рай совершает ошибки ничуть не реже чем ад. Просто у него хорошая пресса
gopstop2007
✯ Ветеран ✯
Сообщения: 1702
Зарегистрирован: 25 Март 2009, 21:55
Благодарил (а): 9 раз
Поблагодарили: 4 раза

Source Class - multi dll с чем едят?

Сообщение gopstop2007 »

тут тоже было немного https://clarionsharp.com/blog/category/ ... ws/page/7/
“Есть всего 2 типа языков: те, на которые все жалуются и те, которыми никто не пользуется.” — Бьерн Страуструп
Аватара пользователя
porutchik
Активист
Сообщения: 150
Зарегистрирован: 01 Февраль 2009, 5:35

Source Class - multi dll с чем едят?

Сообщение porutchik »

gopstop2007 писал(а): 10 Февраль 2021, 9:01 тут тоже было немного https://clarionsharp.com/blog/category/ ... ws/page/7/
там у них ни о чем. Причем сплошная деза... Generate Members - сразу не доступны в классе работа с БД - а open/close не на что не влияют
Аватара пользователя
porutchik
Активист
Сообщения: 150
Зарегистрирован: 01 Февраль 2009, 5:35

Source Class - multi dll с чем едят?

Сообщение porutchik »

Admin писал(а): 10 Февраль 2021, 2:01 И тогда ваш пример работает:
подытожу... работает только первый вариант с ручным заполнением файла экспорта
во втором варианте (хоть он мне более нравится) гпф при обращении к функциям работы с БД
Ответить