Скачать MetaTrader 5

передача тикера символа в DLL на С++ и вызов в МТ4 обратно - страница 2

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Tradeprog
83
Tradeprog  

и всетаки, кто подскажет как передать в длл текстовый символ? и как его в длл сохранить?

Ihor Herasko
11244
Ihor Herasko  
imromann:
и тишина ((( 


Вы спрашиваете: как передать строку/строки в DLL? Потом приводите код, в котором есть все, что угодно, но не передача строк в DLL. Точнее, из того, что имеет отношение к вопросу, всего две строки:

//SetNameSym(i, arrSym[i]);                                        // Вносим тикер символа

и

MT4_EXPFUNC void         __stdcall              SetNameSym(const char idsym, wchar_t *name)

С чем именно Вы столкнулись, непонятно. Тем более непонятно, для чего приведен весь остальной код.

Передачу строк в DLL делаю так.

MQL4:

   // Заполнение массива символов
   ...
   // -------

   // Передача массива символов
   for (uint i = 0; i < symbolsCnt; i++)
      DLL_SendSymbol(g_symbols[i]);

 DLL:

extern "C" void __declspec(dllexport) __stdcall DLL_SendSymbol(const wchar_t* symbolName)
{
        AFX_MANAGE_STATE(AfxGetStaticModuleState());

        std::wstring wSymbolName = symbolName;

        ...
}
Vadim Zhunko
5226
Vadim Zhunko  
Scriptong:

В DLL нельзя передавать массив строк. Только построчно: https://docs.mql4.com/ru/runtime/imports

Решение: передавать массив в цикле.
Теперь можно.
Ihor Herasko
11244
Ihor Herasko  
Zhunko:
Теперь можно.


Начиная с какого билда?
Vadim Zhunko
5226
Vadim Zhunko  
Scriptong:

Начиная с какого билда?
C первого релиза. Точно не помню. Это 2 февраля было.
Алексей Тарабанов
7326
Алексей Тарабанов  
Zhunko:
C первого релиза. Точно не помню. Это 2 февраля было.


Бывает. 
12
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий