Websocket как сделать? - страница 8

 
Алексей Барбашин:

Нет, не удаляем, он нам еще пригодится!

Хорошо! Жду новых указаний ))
 
Алексей Барбашин:

Можно поинтересоваться как у адепта шарпа? А в чём смысл использования управляемого кода перед неуправляемым? Вот конкретно здесь, например. Если отбросить всякое вроде синтаксиса и остановиться на принципиальных выгодах.

 
Алексей Барбашин:

Ну мало кто пишет на "чистом" языке, и вы используете шарповские либы, в плюсах аналогично. Ну я на них не настаиваю, есть компилируемый гоу, например. Просто действительно не понимаю необходимость в этой прокладке в виде виртуальной машины. Вижу минусы, выгод как-то не наблюдаю. Да ещё и детище мелкомякгих, я бы на джаву лучше пошёл.

 
готово, все собралось без ошибок
 
Все работает
 
Алексей Барбашин:

Так не пройдет. В указанном материале используется иная технология интеграции c# и mql. По указанной технологии непосредственно в dll внедряется библиотека, которая создает "прослойку" между управляемым и неуправляемым кодом, в противном случае шарп не мог взаимодействовать с sql. Но разработчики провели очень большую работу и теперь библиотеки на шарпе могут интегрироваться в mql нативно, не требуется даже декларировать экспорт процедур, все "срастается" как родное. что мы с Федором и показали. А со структурами нужно разобраться. Согласно того, что хочет сделать Федор, нам нужно будет возвращать из dll именно структуры данных. Можно конечно будет извратиться через маппинг, но очень надеюсь что все получится без лишних заморочек.

я предлагал проверить пример - проверил не работает, не видит MQL5 пользовательских типов

дело не в технологии, во второй половине прошлого года MQL5 стал поддерживать .Net "из коробки" - это уже все в курсе ;)

Vict:

Просто действительно не понимаю необходимость в этой прокладке в виде виртуальной машины. Вижу минусы, выгод как-то не наблюдаю. Да ещё и детище мелкомякгих, я бы на джаву лучше пошёл.

готовых либ очень много.... причем часть библиотек используют библиотеки на плюсах - .Net позволяет обернуть .dll на С++ в один исполняемый файл

делал тесты производительности и читал, C# часто показывает скорость около С++ ( около 5-10% выигрыш ), т.е. речи не идет о двукратной превосходстве С++

ну и C# очень простой язык, правда до определенного уровня - до уровня взял готовый пакет и прикрутил к нему пользовательских интерфейс - в буквальном смысле слова в 2 клика, а вот подтюнить готовые библиотеки, связать их с другими библиотеками - тут уже полный аншлаг )))

в общем удобство использования  и скорость написания это очень большой плюс, имхо

ЗЫ: на неделе займусь прикручиванием к C# Wolfram - из опыта, знаю что в течении недели получу результат который хочу, листнул Wolfram C# - все стандартно как и везде с пакетами на C#

 
Igor Makanu:

делал тесты производительности и читал, C# часто показывает скорость около С++ ( около 5-10% выигрыш ), т.е. речи не идет о двукратной превосходстве С++

Ну это смотря как считать. Например, мерим скорость исполнения некого алгоритма одним потоком, получаем примерно одинаковые цифры. Но вот не упомянаем о том, что N-кол-во ядер занималось компиляцией "на лету", ничего не говорим о времени запуска, и потряебляемой памяти. Это как с Эльбрусами, пока одно ядро исполняет инструкции, другое полностью занято трансляцией.

ну и C# очень простой язык, правда до определенного уровня - до уровня взял готовый пакет и прикрутил к нему пользовательских интерфейс - в буквальном смысле слова в 2 клика,

Ну если писать гуй на чистом winapi, то может быть. Но можно ведь проще, разве сложно окно с кнопкой и обработчиком (fltk)?

#include <FL/Fl.H>
#include <FL/Fl_Window.H>
#include <FL/Fl_Button.H>
 
void
button_callback(Fl_Widget* o, void*)
{
        Fl_Button* button = (Fl_Button*) o;
        button->label("Уиииии!");
        button->redraw();
}
 
int
main()
{
        Fl_Window window(300, 200, "Тест.");
        window.begin();
                Fl_Button button(10, 150, 100, 30, "Нажми");
        window.end();
        button.callback(button_callback);
        window.show();
        return Fl::run();
}
 

Клево! Нам xml приходит?


 
Алексей Барбашин:

Виктор, не проблема. У каждого своя религия. Но Вы попробуйте в качестве примера реализовать на с++ тот пример, что мы сейчас создаем. Насколько проще его будет создать на с++? Сама реализация websocket на с++ еще тот геморой. 

Прозвучит удвитиельно, но есть готовая либа libwebsockets.

У меня ощущение, что часто мнение о плюсах складывается примерно так - человек не умеет/не знает как подключать готовые библиотеки, видел классический пример окна с++ на чистом winapi, пототм видит шарп с стд библиотекой на все случаи жизни (что плохо по-моему) и получает оргазм от неё. А плюсы в его представлении остаются чем-то очень старым и трудозатратным.

 
Поставил