Главная > Полезные статьи > Программирование Внешних Dll Для Equis Metastock

Программирование Внешних Dll Для Equis Metastock


Написание (программирование) внешних функций для Метастока можно осуществить с помощью Metastock Developer's Kit. Metastock Developer's Kit - это комплект разработчика для создания внешних dll и присоединения (линковки) их к программе Equis Metastock (http://www.metastock.com).

Поэтому для написания dll нужно установить Metastock Developer's Kit.

MDK – является приложением к компиляторам.

В комплект установки MDK также включает:

  • Пустой шаблон исходника программы (DLL) и всех необходимых модулей к нему
  • Образец исходника с примерами функций
  • Прорамма MSXtest для быстрой проверки созданных MSX DLL.

Во время установки MDK сам метасток надо закрыть иначе выдаст ошибку.

Программирование внешних dll можно осуществлять на следующих языках: С, Delphi и PBasic. Но программирование на С имеет больше возможностей при созданию внешних фунций.

После установки каталог С: EquisMDKMSX будет содержать три папки с именами С, Delphi и PBasic содержащие файлы образца исходника с примерами функций, файл структур переменных и пустой шаблон исходника.

В идеальном случае работа с MDK выглядит так:

  • Запускаете дельфи
  • Открываете из него файл MSXTmplt.pas.
  • Сохраняете его как проект (save as... и выбираете там .dpr)
  • Закрываете дельфи и открываете только что созданный проект *.dpr теми же дельфями.
  • И глядя на готовый шаблон, прописываете в него свою функцию
  • Компилируете проект. (В каталоге с проектом должен появиться файл *.dll)
  • Затем кладете этот файл в папку с программой для тестирования MSX DLL и тестируете. MSXTest очень хорошая тестилка, она прогонит через вашу функцию все возможные и невозможные варианты, а если ошибка не в функции, а в самой dll, то вы тоже об этом узнаете.
  • После этого берете созданную вами библиотеку и кладете ее в папку EquisMetaStockExternal Function DLLs запускаете метасток и можете вызывать свою функцию такой формулой:
  • ExtFml("DllName.FuncName", p1, p2 , ...,pn),

    где:

    DllName - имя вашей dll без расширения.

    FuncName - имя вашей функции

    р1, р2... - параметры, если они есть у вашей функции

    Так можно действовать в идеальном случае. В нашем случае (не идеальном) нужно будет сперва разобраться как писать функции, а затем уже писать их. А разобраться MDK предлагает только по готовым примерам. Чтобы хоть как-то помочь вам в этом, я прилагаю исходник шаблона с переведенными на рус.яз. коментариями, и исходник (написанный мной) с функцией rnd (генератор случайных чисел).

    Дело в том, сразу разобраться со штатным образцом (DelphiSampleDLL.pas) тяжело. А моя функция rnd очень простая, задействует минимум кода. К тому же я крайне обильно напичкал ее комментариями в помощь начинающим. Кстати эта функция по-своему интересна и позволит вам развеять миф о том, что шансы на рынке равны (50/50).

     



    Вернуться назад