MT4 dll Hello World

Что нам нужно

Сейчас я использую 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