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

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

Добавлено: 25 Ноябрь 2020, 5:19
talgat55
С11 ABC SQL. Перетаскиваю проект из с6.3 . Пользую класс abxl все положил в Libsrc
При компиляции выдает ошибки по всем функциям этого класса - типа
" Unresolved External SETCELLVALUE@F10EXCELCLASSsbOsbss in..."
Как-то регистрировать этот класс в с11 ? ( Включен после After global includes- как include('abxl.inc') )

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

Добавлено: 25 Ноябрь 2020, 10:49
kreator
include правильно указан. А что за класс? Просто текст. Или есть dll, lib? Шаблон есть? Регистрируют шаблоны, классы не регистрируют.

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

Добавлено: 25 Ноябрь 2020, 16:03
gopstop2007
talgat55 писал(а): 25 Ноябрь 2020, 5:19 Как-то регистрировать этот класс в с11 ? ( Включен после After global includes- как include('abxl.inc') )
Посмотрел у себя, у меня стоит после - After File Declarations

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

Добавлено: 27 Ноябрь 2020, 5:30
talgat55
abxl класс вывода в excel нет ни lib ни dll только inc и clw

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

Добавлено: 27 Ноябрь 2020, 8:00
Игорь Столяров
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 КБ) 2231 просмотр

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

Добавлено: 27 Ноябрь 2020, 10:37
talgat55
в классе прописан LinkMode=1 . В свойстве проекта ставлю 1 После компиляции захожу там 0 вместо 1
?

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

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

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

Добавлено: 27 Ноябрь 2020, 12:52
gopstop2007
может проще указать за какие даты, размеры, версии файлов?

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

Добавлено: 27 Ноябрь 2020, 14:19
finsoftrz
Не знаю, поможет ли.
В С6 валидно было EXTERNAL,DLL
В С11 надо EXTERNAL,DLL(1)

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

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

В настройках app не нашел нигде "Generate ABC as external - где это ?

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

Добавлено: 27 Ноябрь 2020, 20:20
Игорь Столяров
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 КБ) 2149 просмотров

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

Добавлено: 28 Ноябрь 2020, 18:16
kreator
ИМХО, то что в тексте есть equate пофиг. Надо в объявлении класса убрать это.
Посмотрел у себя. Есть чужой класс. Там тоже всё это есть. Только закомментировано. Сейчас не вспомню - я ли это коммент поставил. Видимо было когда-то так принято писать.

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

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