Не возвращается нужный return из dll

391
16 мая 2017, 04:51

Пытаюсь из dll вернуть значение int в MetaTrader4.

Например, 1. А приходит всегда NULL.

test.def

LIBRARY test
EXPORTS
    FuncReturn

dllsample.cpp

BOOL APIENTRY DllMain(HANDLE hModule, DWORD ul_reason_for_call, LPVOID lpReserved)
{
    switch (ul_reason_for_call)
    {
    case DLL_PROCESS_ATTACH:
    case DLL_THREAD_ATTACH:
    case DLL_THREAD_DETACH:
    case DLL_PROCESS_DETACH:
        break;
    }
    return(TRUE);
}
#define MT4_EXPFUNC __declspec(dllexport)
MT4_EXPFUNC int __stdcall FuncReturn()
{
    return 1;
}

sample.mq4

#import "bot.dll"
   int FuncReturn();
#import
int init()
{
   Print(FuncReturn());
   return(0);
}

PS Сама функция отрабатывает нормально - логировал. Но return не возвращает значение.

Answer 1

Вот тут нашёл эту проблему.

http://stackoverflow.com/questions/39520941/how-to-pass-argument-by-reference-from-mql4-to-c-dll

Сделал как написано, всё заработало.

READ ALSO
Жизненный цикл и выделение памяти в JS

Жизненный цикл и выделение памяти в JS

В объектно ориентированных языках по типу Java/C# память при создании выделяется: для примитивов(в stack), для объектов(в heap)Соответственно жизненный...

414
Появляются лишние данные как поправить?

Появляются лишние данные как поправить?

Нужна помощь! Есть поля карточки клиентаНажимаешь на нужную информацию вместо нее подставляется input и можно редактировать

378
Как зациклить анимацию (setInterval)

Как зациклить анимацию (setInterval)

Пишу себе велосипед, кубик должен бесконечно двигаться вправо и возвращатьсяПроисходит только 1 итерация

439