Скачать MetaTrader 5

DLL

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Forex Trader
114297
Forex Trader  
Подскажите пожалуйста, на каких компиляторах можно делать реально работающие DLL для mql. Вопрос возн. из опыта, что например те dll, которые чисто по учебнику делаешь на BC++ не экспортируют функции в приложения VC++ 7.0 и те, что делаешь на VC++, не работают с приложениями Delphi...
MetaQuotes Software Corp.
Модератор
188015
MetaQuotes Software Corp.  
На любых. Важно чтобы функции были cdecl.
Forex Trader
114297
Forex Trader  
Ну вот, например, пишу в delphi 7, т.к. там быстрее всего:
library Forex;

uses windows;

function FCreate(): Integer; stdcall;
begin
CreateFile('D:\text.txt', GENERIC_WRITE or GENERIC_READ, 0,
nil, CREATE_NEW, FILE_ATTRIBUTE_NORMAL, 0);
MessageBox(0,'miojijoijo', 'huhiuh', 0);
result := 0;
end;

exports
FCreate;

begin
end.

Потом пишу Forex.dll в корень D:

В скрипте meta trader 4:
//+------------------------------------------------------------------+
//| MTrader.mq4 |
//| Copyright © 2006, MetaQuotes Software Corp. |
//| |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2006, MetaQuotes Software Corp."
#property link ""

//+------------------------------------------------------------------+
//| script program start function |
//+------------------------------------------------------------------+

#import "D:\Forex.dll"
int FCreate();
#import
int start()
{
FCreate();

return(0);
}
//+------------------------------------------------------------------+

Запускаем скрипт, и ничего нет: ни окна messagebox, ни файла на D:. С VC++ такая же ситуация... Ну и в чем дело тут?

В VC++.
Файл h:
#define EXPORT __declspec (dllexport)
EXPORT int MyFunction();


Файл cpp:
#include <windows.h>
#include "Spiel.h"

int WINAPI DllMain(HINSTANCE hInstance, DWORD fdReason, PVOID pvReserved)
{
return TRUE;
};

EXPORT int MyFunction()
{
MessageBoxA(NULL,"nbui","Function from DLL",MB_OK);
return 0;
}

Результат тот же...
MetaQuotes Software Corp.
Модератор
188015
MetaQuotes Software Corp.  
А в настройках эксперта разрешен импорт DLL? И что пишется в логах?
Forex Trader
114297
Forex Trader  
Renat, пасиб большое, я правда не заметил эту настройку вначале, теперь функции вызываются, еще раз спасибо.
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий