Скачать MetaTrader 5

DLL

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Нет времени изучать MQL5? Библиотека исходников для вас!
Forex Trader
114257
Forex Trader 2006.03.09 22:22 
Подскажите пожалуйста, на каких компиляторах можно делать реально работающие DLL для mql. Вопрос возн. из опыта, что например те dll, которые чисто по учебнику делаешь на BC++ не экспортируют функции в приложения VC++ 7.0 и те, что делаешь на VC++, не работают с приложениями Delphi...
MetaQuotes Software Corp.
Модератор
181419
MetaQuotes Software Corp. 2006.03.09 23:45  
На любых. Важно чтобы функции были cdecl.
Forex Trader
114257
Forex Trader 2006.03.10 01:45  
Ну вот, например, пишу в 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.
Модератор
181419
MetaQuotes Software Corp. 2006.03.10 08:14  
А в настройках эксперта разрешен импорт DLL? И что пишется в логах?
Forex Trader
114257
Forex Trader 2006.03.10 09:53  
Renat, пасиб большое, я правда не заметил эту настройку вначале, теперь функции вызываются, еще раз спасибо.
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий