![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Я сам не верю. Мало того, что МТ4 напрямую вызвает .NET (стат. методы). Так еще и не сложный маршалинг проходит автоматически. int* -> ref int, char* -> String. Вот такие пироги.
может это билд 221? =)
то есть если в #import прописать метод void MyMethod();, то из dll автоматичесии вызовется Class1.MyMethod() ?
можете простой примерчик скинуть?
может это билд 221? =)
то есть если в #import прописать метод void MyMethod();, то из dll автоматичесии вызовется Class1.MyMethod() ?
можете простой примерчик скинуть?
Нет. Билд тут не причем. Дело вот в этом:
http://www.blong.com/Conferences/BorConUK2002/Interop1/Win32AndDotNetInterop.htm#InversePInvoke
Пример:
А вот MQL4:
Компилится .NET, срабатывает Build Events. Запускается небольшое консольное приложение которое через параметры (через макрос студии) получает путь к сборке. Сборка декомпилится в IL. Получаем ассемблер. В асемблерный код прога добавляет пару строк - таблицу эксопрта функций. Причем экспортируются только те функции, что помечены тем атрибутом обфускатора - это видно в коде. TradingMachineManager_Init - это под которым экспорт функции. Из асемблера снова комбиляция в dll.
Причем в студии в окне Output выдны результаты работы консольной проги. Если она возвращает по выходу 1 - сдутия кричит что ошибки компиляции. Потом работает отладка. Полный фарш.
Т.е. C# это не поддерживает, а .NET (в лице IL) поддерживает. Устойчивость не могу прокомментировать. Но пока работало как часы.
Прогу не дам. Не хочу позориться, она на скорую руку написана. Но пишется за час.
ЗЫ: Все остальное .NET делает сам. И маршалинг тоже. Т.е. в IL пишется оналог DEF файла для С++.
ах вот оно в чем дело...
спасибо за ссылку!
То есть на выходе у нас обычный PE32 файл? такой как если бы мы использовали для этих целей c++ проект с поддержкой clr?
ах вот оно в чем дело...
спасибо за ссылку!
То есть на выходе у нас обычный PE32 файл? такой как если бы мы использовали для этих целей c++ проект с поддержкой clr?
Нет! На выходе у нас обычная .NET сборка которую можно юзать как обычную Win32 DLL.
На нее работают обычные win32 функции LoadLibrary и GetProcAddres(имя функции). Но это .NET сборка - ее можно просматривать разными нетовскими тулзами. Ты проделай тот пример что в ссылке приведен - тупо руками. И у тебя тоже .NET из любой дыры начнет вызываться.
крутота.
спасибо, попробую.
Сколько примерно, будет стоить написание самой простейшей ДЛЛ, чтобы защитить от декомпиля идею моего
несложного эксперта. Возможно ли написание ДЛЛ без предоставления всего кода самого эксперта.
И если это возможно, - То какую информацию или часть кода я должна предоставить ?
Нисколько если, если идея стоящая ))
Защита тоже нисколько, поскольку достойной не существует
Самую секретную, LOL ))