Возникла проблема с вызовом внешних функций на С/С++ на Ultralogik(e)32 2.00 build27a:
Добавляю блок "EXT" , выбираю в нем нужный *.obj, нужную viod функцию, call near, компилирую, ошибок нет.
Запускаю, а работы функции не видать, значит не прилинковалась, хотя *.map не видать, чего линкер делает одному Ultralogik(y) известно.
Как это побороть? Мож кто знает, как, используя tlink.exe, собрать *.exe?
Аналогичную проблему решить не удалось.
Ultralogik 2.00.042a (последний из выпущеных).
Пытались прилинковать обьектный файл сделаный на С (Borland C3.1), добавляли разные библиотеки, однако Tlink выдает ошибки, EXE-файл соответственно не получается.
Может кто нибудь знает методику компилирования и сборки программы UL, с подпрограммой на С.
На FTP Prosoft примеры под UL16, в справке UL этот вопрос обойден, поддержка Прософт молчит...
Сергей
Первоначально опубликовано gunman
Как это побороть?
Я поборол Ultralogik тем, что переделал всю программу на Си
(Надеюсь, не в обиду разработчикам)
[/QUOTE]
(Надеюсь, не в обиду разработчикам)
[/QUOTE]
Разработчикам UL по видимому нисколько не обидно, обидно в основном пользователям.
Сергей
На диске с Ultralogik(ом)2.00 build27a в папке \examples\bc31 лежат примеры, когда их узрел, чуть не прослезился от счастья. Смотреть всем танкистам.
Я собираю строкой tlink c0m.obj+stored.obj+kontr.obj,kontr,,cm.lib
где, stored.obj - объектный файл программы на Си (модель, соответственно, medium)
sermon Я собираю строкой tlink c0m.obj+stored.obj+kontr.obj,kontr,,cm.lib
А что такое cm.lib ?, почему она, где ее взять?
Сергей
В папке BorlandC\lib она лежит в месте с подобными, а она потому, что при компиляции Си проекта он использовал модель памяти medium(см. настройки в борланде), если выбрать модель large, то понадобиться cl.lib. Еще понадобиться *.lib из plcwin32\lib.
Изрядно помучавшись с компиляцией и отладкой программы с функциями на С++ научился компилировать и отлаживать программу на локальном компьютере полностью из-под Borland C++ 3.1
Возможно, кому-то будет полезно. В проекте используется модель large, поэтому используются библиотеки для этой модели памяти.
Для этого необходимо правильно настроить проект.
В окне проекта должны быть следующие файлы:
C0L.OBJ - самое важное, чтобы этот файл был первым в проекте
file1.CPP - любой подключаемый код
PLCRTL.LIB - нужен, порядок не важен
ultralogik_project.OBJ - объектный файл от Ultralogik
file2.CPP - любой подключаемый файл
CL.LIB - обязательный файл
Такой способ позволяет:
1. Компилировать финальную программу прямо из IDE
2. Отлаживать программу, понаставив брикпойнты, трассировать, просматривать переменные и все прочие вкусности.
Вы не можете публиковать новые темы в этом форуме Вы не можете отвечать на сообщения в этом форуме Вы не можете удалять Ваши сообщения на этом форуме Вы не можете редактировать Ваши сообщения на этом форуме Вы не можете создавать голосования на этом форуме Вы не можете выражать своё мнение в голосованиях на этом форуме