I resolved this issue myself after more investigation into c++, dll, decorated names, compiling dll, etc.
In MT4 I imported the decorated names and it worked.
Looking into DLL file, you find the list of functions with decorated names (probably created by the compiler I guess, I'm new to this). So you have to see the source of dll.
After looking inside original c++ sources Now, I had to import the original name of the function.
It worked:)
Anyway, maybe someone will post here if decorated names will be supported in the future in MQL5.
Last time I made a dll it was in the 90s. I remember there was the option to export by name, by a fake name, and by index. And I'm sure that in the index version compiler didn't place any kind of names in the compiled dll. Alas, these were 16 bit dlls. I don't know if after switching to 32 bit model the index export still remained valid. But I think a dll with functions exported by index could not possibly be imported here.
Do you know how to import a COM dll in MQL5 ?
Last time I made a dll it was in the 90s. I remember there was the option to export by name, by a fake name, and by index. And I'm sure that in the index version compiler didn't place any kind of names in the compiled dll. Alas, these were 16 bit dlls. I don't know if after switching to 32 bit model the index export still remained valid. But I think a dll with functions exported by index could not possibly be imported here.
Do you know how to import a COM dll in MQL5 ?
You are more advanced than me in knowledge about dlls.
If I were you, I would try MT4 to see if it can. If MT4 can't, small chances MT5 can:P
I resolved this issue myself after more investigation into c++, dll, decorated names, compiling dll, etc.
In MT4 I imported the decorated names and it worked.
Looking into DLL file, you find the list of functions with decorated names (probably created by the compiler I guess, I'm new to this). So you have to see the source of dll.
After looking inside original c++ sources Now, I had to import the original name of the function.
It worked:)
Anyway, maybe someone will post here if decorated names will be supported in the future in MQL5.
It sounds logical.
Thanks for clarification (name mangling).
- Free trading apps
- Over 8,000 signals for copying
- Economic news for exploring financial markets
You agree to website policy and terms of use
I have a DLL which I use in MT4, but it doesn't seem to work in MT5.
All functions are in this form: _nameOfFunction@24
instead of 24, some functions there are with @40,@4 etc...
from what I saw, these are under the term of "decorated names"
MT4 recognized these names of functions, but MT5 doesn't compile because of the @'s presence:
'@' - unknown symbol
Is this a bug? Or it's just undocumented?
Can someone please help me?
Because documentation says nothing about anything like this, and I don't have anywhere to look elsewhere, as I just finished searching the web.