Проблема с добавлением сборки SmallBasicLibrary.dll

Спасибо всем кто откликнулся, но у меня не получается приступить к упражнениям по книге В.Рубанцева “PascalABC . NET Программирование графики на примерах ” . Я не разбираюсь в программировании, поэтому ещё раз извиняюсь если мои вопросы вызовут недоумение.

Я начал с того что у меня не получалось добавить сборку SmallBasicLibrary.dll в программу PascalABC.NET .

Возможно что следующий способ разрешает эту проблему.

Но у меня что-то не получается. После выполнения инструкций из "книги В.Рубанцева” на стр. 21

и стр.22 я запустил программу. В книге сказано что на данном этапе программа ничего не сделает, но я получил следующую ошибку:

После некоторых попыток, я так и не сумел создать т.н. графическое окно как показано в низу страницы 24 (Рис. 1.21.)

Подскажите пожалуйста в чём проблема.

Может быть, с этим вопросом Вам лучше обращаться к автору книги? Давайте не будем сбрасывать со счетов, что книга эта была написана не сегодня и даже не вчера: с тех пор произошли определенные изменения и в языке, и в среде программирования, и в .NET-библиотеках, и в операционных системах… Вряд ли остальное сообщество будет в состоянии пытаться прорешать каждую задачу, с которой у Вас возникли (и еще могут возникнуть в дальнейшем) проблемы. Хотя… кто знает?

Не нужно вызывать никаких проектов. Создайте новую программу и поместите в нее следующий код:

unit DrawUnit;
{$reference SmallBasicLibrary.dll}

uses Microsoft.SmallBasic.Library;

type
  Draw = class
  public
    class procedure Prepare();
    begin
    
    end;
    
    class procedure Draw();
    begin
      // GraphicsWindow.Show();
      GraphicsWindow.DrawText(10, 10, 'Hello, World!');
      GraphicsWindow.DrawText(10, 30, 'Здравствуй, Мир!');
    end;
  end;

end.

Сохраните программу под именем DrawUnit.pas. Теперь снова откройте окно для ввода новой программы и наберите там:

uses DrawUnit;

begin
  Draw.DRaw
end.

Запустите программу на выполнение.

Еще раз: не надо делать никакого проекта!

Нет, это не способ решения. Это попытка найти минимальный код с которым ошибка воспроизводится. Это необходимо чтоб найти причину ошибки, чтоб её можно было исправить и было понятно как обходить.

Не “что то” а симптомы во всех подробностях.

Разумеется, вы не написали begin перед end. можно только в файлах модулей и библиотек, а вы это делаете в основной программе.

begin-end. программы это точка входа, то - откуда начнётся выполнение. Без неё программа невозможна.

А в книге - этот класс описывается в модуле, вы были невнимательны.


Кстати, чтоб загрузить скриншот - достаточно нажать Ctrl+V в окне ответа, скопировав изображение. Ну или если у вас файл - его можно потянуть и кинуть на окно ответа.

В том .pdf всё делалось через проект. Но вообще да, проекты не очень удобно реализованы, лучше делать всё отдельными файлами.

Благодарю за отклики, постараюсь учесть все замечания.

Дело в том что эта и другие похожие книги Рубанцева выложены на сайте PascalABC . net , в самом начале этого года, по согласованию с автором. Исходя из этого я подумал что именно тут надо обратить внимание на проблему и это как раз то самое место где можно получить подсказку.

Без условно, мне никто ничего не должен, но мир не без добрых людей Не сочтите за лесть, но Вы же откликнулись :slight_smile:

Спасибо, в будущем постараюсь выражаться суше. Что касается этого раза, то все детали изложил, по моему подробно и без излишеств.

Я просто скопировал код из книги

Написал автору тоже и пригласил его сюда обсудить этот вопрос. Эта книга, кстати, у него на сайте стоит всего 160 руб, обязательно куплю, когда прояснится эта проблема.

Он присутствует на форуме под ником Valery и часто читает написанное.

Сейчас получилось так, что в теме “Проблема с добавлением сборки…” начинается обсуждение совсем уже других вопросов. Это не совсем хорошо, потому что другие люди, у которых может возникнуть аналогичная проблема с классами, могут сюда не зайти, ориентируясь на заголовок. Возможно, @Admin сочтет нужным эту тему переименовать или куда-то перенести.

1 лайк

Вчера установил последнюю сборку паскаля и проверил книжные проекты. Всё работает. Здесь нет проблем ни с ОС, ни с паскалем, ни с библиотекой, ни с книгой. Просто человек решил написать код не так, как в книге а по-своему. Отсюда и ошибки.

Да, книга не новая, но с тех времён ничего принципиально не изменилось.

1 лайк

При запуске (компиляции) проектов-примеров, которые можно скачать вместе с книгой В.Рубанцева “PascalABC . NET Программирование графики на примерах”, при помощи PascalABC.NET (версия 3.6.2, сборка 2413 от 16.04.2020) на системе Windows 7 x64 появляется ошибка: Сборка ‘SmallBasicLibrary.dll’ не найдена

Чтобы от этой ошибки избавиться мне потребовалось добавить в любой из файлов проекта первой строкой: {$reference SmallBasicLibrary.dll}

а также удалить в Структуре проекта -> Подключенные сборки: SmallBasicLibrary (правой кнопкой мыши -> Удалить)

Соответственно, при выполнении заданий из книги, вместо добавления SmallBasicLibrary.dll в “Подключенные сборки” надо добавить в любой из файлов проекта первой строкой: {$reference SmallBasicLibrary.dll}

Золотые слова! Именно так и нужно делать.

1 лайк

Скоро будет новая книга по основам компьютерной графики. Там всё правильно.

2 лайка

Ждём! Надеемся! Верим!

А какая библиотека будет использована?

Дело в том, что я давно не брал паскаль в руки, поэтому пока решил освежить свои знания по этому ЯП и библиотекам, которые мне хорошо известны. Это SmallBasicLibrary и LitDev.

Поэтому эта книга только по основам графики. Но я надеюсь, что даже с этими библиотеками можно написать много интересных программ. В общем, это книга больше на перспективу. В ближайших планах - поработать на паскале в разных интересных направлениях.

1 лайк

Книга “PascalABC.NET. Основы компьютерной графики” со всеми причиндалами здесь:

http://www.mediafire.com/file/yobwiivjoo1xbbj/PascalABC.NET.%25D0%259E%25D0%25A1%25D0%259D%25D0%259E%25D0%2592%25D0%25AB%25D0%259A%25D0%259E%25D0%259C%25D0%259F%25D0%25AC%25D0%25AE%25D0%25A2%25D0%2595%25D0%25A0%25D0%259D%25D0%259E%25D0%2599_%25D0%2593%25D0%25A0%25D0%2590%25D0%25A4%25D0%2598%25D0%259A%25D0%2598.zip/file

1 лайк

Ой, красота какая!!!

Буду изучать :slight_smile:

А не было никаких проблем с dll или со средой во время разработки?

1 лайк

Картинки красивые)) Еще бы что-то такое на GraphWPF сваять, чтобы показать возможности штатной библиотеки.

Надеюсь, что и до GraphWPF руки дойдут. Но пока присматриваюсь к сторонним библиотекам и жду, когда руки до штатной зачешутся.

Библиотеки подключаются без проблем. Но их приходится копировать в папку с каждым проектом. Поэтому исходники большие.

Иногда возникают проблемы с преобразованиями типов. И компилятор иногда без причин вырубается. Но всё равно разработка таких программ на паскале идёт гораздо быстрее, чем на Си-шарпе. Там пока Visual Studio запустишь, пока она пару строк закомпилирует, успеешь 10 раз сказать “Будь проклят тот день, когда я сел за клавиатуру этого пылесоса!”.

image

Можно в преамбуле вашей книги написать, что для функционирования всех примеров необходимо поместить нужные dll в GAC: gacutil.exe /i нужная.dll

И тогда не надо будет копировать. Мы так с библиотекой Helix сделали для поддержки 3D-графики

А что за проблемы?

Нельзя ли описать, как он вырубается, и насколько часто.