Что нам нужно Сейчас я использую VisualStudio 2008, так что пример для этой среды разработки Из бесплатных продуктов можно взять dev C++ |
1. Создаем проект File->New->Project |
|
|
Жмём Ok |
|
|
Жмём Applicaton Settings |
|
|
Выбираем DLL, Жмём Finish |
2. Шаблон dll Вид картинок может отличаться от того, что видите Вы. Не огорчайтесь. Ищите похожие места на экране :) |
|
Файл dll_HelloWorld.cpp На самом деле он уже открыт.И всё таки, Ищем название в списке и кликаем два раза по нему |
|
|
Записываем в файл следующий текст
// dll_Hello_World.cpp : Defines the exported functions for the DLL application.
//
#include "stdafx.h"
#define MT4_EXPFUNC __declspec(dllexport)
// Это - волшебные слова. Они могут пригодиться, при получении в dll массива с котировками
#ifdef _MANAGED
#pragma managed(push, off)
#endif
#ifdef _MANAGED
#pragma managed(pop)
#endif
MT4_EXPFUNC void __stdcall MyHelloWorld( char* str)
{
WCHAR wszMessage[50];
char* source = str;
int k=0;
while ( *source != 0)
wszMessage[k++] = *(source++);
wszMessage[k] = 0;
::MessageBoxW( NULL, wszMessage, L"MyHelloWorld", MB_OK);
}
|
Файл dll_HelloWorld.def В этом файле содержится список функций, которые можно использовать в dll. Для создания файла нажимаем на Source Files правой кнопкой мыши. Выбираем Add > New Item |
|
|
Делаем всё как на картинке, вписываем руками название файла dll_HelloWorld как показано |
|
|
Жмём кнопку Add |
|
Записываем в файл следующий текст LIBRARY "dll_Hello_World" EXPORTS MyHelloWorld Если функций несколько файл выглядит следующим образом LIBRARY "dll_Hello_World" EXPORTS FunctionName_1 FunctionName_2 FunctionName_3 |
3. Компиляция Сменяем тип проекта с Debug на Release |
|
|
В меню выбираем Build->Build dll_Hello_World Если всё правильно сделано, в окошке внизу экрана печатается типа так |
|
4. Подключение библиотеки к MT4 Находим файл dll. Не заблудитесь :) |
|
|
Файл dll копируем в папку MT4 (Вы знаете где она!) Experts\Lirraries |
Файл dll_Hello_World.mqh Такой файл создаем в папке Experts\Include уже из редактора MT4//+------------------------------------------------------------------+ //| dll_Hello_World.mqh | //| version 0000001. 23.05.2009 | //| Copyright © 2009, BabyBear. | //| http://bearden.narod.ru/index.html | //+------------------------------------------------------------------+ #property copyright "Copyright © 2009, BabyBear." #property link "http://bearden.narod.ru/index.html" #import "dll_Hello_World.dll" void MyHelloWorld( string text); |
5. Скрипт
//+------------------------------------------------------------------+
//| Dll_Hello_World.mq4 |
//| Copyright © 2009, BabyBear |
//| http://bearden.narod.ru/index.html |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2009, BabyBear"
#property link "http://bearden.narod.ru/index.html"
#include <dll_Hello_World.mqh>
int start()
{
// Русскими буквами не получится писать
MyHelloWorld( "Hello World!!!");
return(0);
}
|
|
Компилируем, запускаем |
Хостинг от uCoz
|