С10-С11 ПЕРЕВОД ИЗ С6

Clarion, Clarion 7

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

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Ответить
talgat55
Активист
Сообщения: 173
Зарегистрирован: 11 Сентябрь 2008, 11:53

С10-С11 ПЕРЕВОД ИЗ С6

Сообщение talgat55 »

С11 ABC SQL. Перетаскиваю проект из с6.3 . Пользую класс abxl все положил в Libsrc
При компиляции выдает ошибки по всем функциям этого класса - типа
" Unresolved External SETCELLVALUE@F10EXCELCLASSsbOsbss in..."
Как-то регистрировать этот класс в с11 ? ( Включен после After global includes- как include('abxl.inc') )
kreator
✯ Ветеран ✯
Сообщения: 4143
Зарегистрирован: 28 Май 2009, 14:54
Откуда: Москва

С10-С11 ПЕРЕВОД ИЗ С6

Сообщение kreator »

include правильно указан. А что за класс? Просто текст. Или есть dll, lib? Шаблон есть? Регистрируют шаблоны, классы не регистрируют.
We are hard at work… for you. :)
gopstop2007
✯ Ветеран ✯
Сообщения: 1543
Зарегистрирован: 25 Март 2009, 21:55

С10-С11 ПЕРЕВОД ИЗ С6

Сообщение gopstop2007 »

talgat55 писал(а): 25 Ноябрь 2020, 5:19 Как-то регистрировать этот класс в с11 ? ( Включен после After global includes- как include('abxl.inc') )
Посмотрел у себя, у меня стоит после - After File Declarations
“Есть всего 2 типа языков: те, на которые все жалуются и те, которыми никто не пользуется.” — Бьерн Страуструп
talgat55
Активист
Сообщения: 173
Зарегистрирован: 11 Сентябрь 2008, 11:53

С10-С11 ПЕРЕВОД ИЗ С6

Сообщение talgat55 »

abxl класс вывода в excel нет ни lib ни dll только inc и clw
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 5243
Зарегистрирован: 07 Июль 2005, 9:19
Откуда: г. Ростов-на-ДоМу

С10-С11 ПЕРЕВОД ИЗ С6

Сообщение Игорь Столяров »

talgat55 писал(а): 25 Ноябрь 2020, 5:19 Unresolved External
Судя по сообщению об ошибке, у Вас класс не добавляется в EXE / DLL ... :(
Откройте пожалуйста Ваш класс и посмотрите чем (какой константой) определяется его режим линковки.
Проверьте состояние этой константы в проекте Вашего приложения (APP). Пример:

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

AnyFont  Class(),Type,Module('anyfont.Clw'),DLL(AnyFontDllMode),Link('Anyfont.Clw',AnyFontLinkMode)
...
Для этого класса условие линковки к приложению определяется константой: AnyFontLinkMode
Скорее все в проекте "старого" APP C63 у Вас значение "AnyFontLinkMode" указано, а в "новом" С11 - нет.

1.jpg
1.jpg (120.21 КБ) 624 просмотра
«V» значит Вендетта !
talgat55
Активист
Сообщения: 173
Зарегистрирован: 11 Сентябрь 2008, 11:53

С10-С11 ПЕРЕВОД ИЗ С6

Сообщение talgat55 »

в классе прописан LinkMode=1 . В свойстве проекта ставлю 1 После компиляции захожу там 0 вместо 1
?
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 5243
Зарегистрирован: 07 Июль 2005, 9:19
Откуда: г. Ростов-на-ДоМу

С10-С11 ПЕРЕВОД ИЗ С6

Сообщение Игорь Столяров »

talgat55 писал(а): 27 Ноябрь 2020, 10:37 в классе прописан LinkMode=1
Не очень понимаю как в классе может быть прописана константа управления линковки, но это сейчас не важно.
Я не знаю какая у Вас структура проекта, поэтому не могу сказать какие 0/1 Вам нужно поставить и где.
Смотрите проект, поймите принцип формирования внешних вызовов классов и настройте константы управления.
talgat55 писал(а): 27 Ноябрь 2020, 10:37 После компиляции захожу там 0 вместо 1
Есть константы, которые управляются проектом. Если у Вас, например, в настройках APP указано
"Generate ABС as External", то константа ABCLinkMode_ при сборке проекта действительно сбросится в 0.
Вообще, если самопальные классы привязываются к системным константам (сам так делаю для упрощения),
то нужно очень аккуратно следить за настройками проекта и чётко понимать, что Вы делаете ... ;)
«V» значит Вендетта !
gopstop2007
✯ Ветеран ✯
Сообщения: 1543
Зарегистрирован: 25 Март 2009, 21:55

С10-С11 ПЕРЕВОД ИЗ С6

Сообщение gopstop2007 »

может проще указать за какие даты, размеры, версии файлов?
“Есть всего 2 типа языков: те, на которые все жалуются и те, которыми никто не пользуется.” — Бьерн Страуструп
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 2576
Зарегистрирован: 06 Ноябрь 2014, 12:48

С10-С11 ПЕРЕВОД ИЗ С6

Сообщение finsoftrz »

Не знаю, поможет ли.
В С6 валидно было EXTERNAL,DLL
В С11 надо EXTERNAL,DLL(1)
C6/C11, ШВС, tps/btrieve.
talgat55
Активист
Сообщения: 173
Зарегистрирован: 11 Сентябрь 2008, 11:53

С10-С11 ПЕРЕВОД ИЗ С6

Сообщение talgat55 »

Игорь Столяров писал(а): 27 Ноябрь 2020, 11:25
talgat55 писал(а): 27 Ноябрь 2020, 10:37 в классе прописан LinkMode=1
Не очень понимаю как в классе может быть прописана константа управления линковки, но это сейчас не важно.
в abxl вначале указано - _ABCDllMode_ EQUATE(0)
_ABCLinkMode_ EQUATE(1)

В настройках app не нашел нигде "Generate ABC as external - где это ?
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 5243
Зарегистрирован: 07 Июль 2005, 9:19
Откуда: г. Ростов-на-ДоМу

С10-С11 ПЕРЕВОД ИЗ С6

Сообщение Игорь Столяров »

talgat55 писал(а): 27 Ноябрь 2020, 19:36 в abxl вначале указано - _ABCDllMode_ EQUATE(0)
_ABCLinkMode_ EQUATE(1)
Супер ! Т.е. для класса автор жестко прописал сборку внутри одиночного EXE / DLL.
Это скорей всего какая-то забытая отладка-костыль, потому что эти константы инициализируются в проекте.
(см. рисунок в предыдущем сообщении)
talgat55 писал(а): 27 Ноябрь 2020, 19:36 В настройках app не нашел нигде "Generate ABC as external - где это ?
Может быть потому, что у Вас проект Legacy ? Я обвёл красненьким на рисунке:

1.jpg
1.jpg (68.68 КБ) 542 просмотра
«V» значит Вендетта !
kreator
✯ Ветеран ✯
Сообщения: 4143
Зарегистрирован: 28 Май 2009, 14:54
Откуда: Москва

С10-С11 ПЕРЕВОД ИЗ С6

Сообщение kreator »

ИМХО, то что в тексте есть equate пофиг. Надо в объявлении класса убрать это.
Посмотрел у себя. Есть чужой класс. Там тоже всё это есть. Только закомментировано. Сейчас не вспомню - я ли это коммент поставил. Видимо было когда-то так принято писать.
We are hard at work… for you. :)
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 5243
Зарегистрирован: 07 Июль 2005, 9:19
Откуда: г. Ростов-на-ДоМу

С10-С11 ПЕРЕВОД ИЗ С6

Сообщение Игорь Столяров »

kreator писал(а): 28 Ноябрь 2020, 18:16 Видимо было когда-то так принято писать.
Больше похоже на то, что константы добавили в текст класса, что бы не разбираясь
прилепить класс с ABC настройками в проект Legacy.
«V» значит Вендетта !
Ответить