-Поиск по дневнику

Поиск сообщений в rss_forum_sources_ru

 -Подписка по e-mail

 

 -Постоянные читатели

 -Статистика

Статистика LiveInternet.ru: показано количество хитов и посетителей
Создан: 29.07.2007
Записей:
Комментариев:
Написано: 80




Форум на Исходниках.RU


Добавить любой RSS - источник (включая журнал LiveJournal) в свою ленту друзей вы можете на странице синдикации.

Исходная информация - http://forum.sources.ru.
Данный дневник сформирован из открытого RSS-источника по адресу http://forum.sources.ru/yandex.php, и дополняется в соответствии с дополнением данного источника. Он может не соответствовать содержимому оригинальной страницы. Трансляция создана автоматически по запросу читателей этой RSS ленты.
По всем вопросам о работе данного сервиса обращаться со страницы контактной информации.

[Обновить трансляцию]

Как переключать мышиные кнопки , легким движением?

Четверг, 27 Мая 2021 г. 09:24 + в цитатник

Метки:  

Как переключать мышиные кнопки , легким движением?

Четверг, 27 Мая 2021 г. 09:09 + в цитатник
Gonarh: Чувак, ты на форуме погромиздов сидишь на год больше чем я, сделай уже хоть чо-нить сам :D

https://forum.sources.ru/index.php?showtopic=421478&view=findpost&p=3847728


Метки:  

Как читать данные из асинхронных WS с использованием boost?

Среда, 26 Мая 2021 г. 20:20 + в цитатник
shm: Убрать явное закрытие соединения и не надо будет повторно устанавливать.

https://forum.sources.ru/index.php?showtopic=421482&view=findpost&p=3847725


Метки:  

Как читать данные из асинхронных WS с использованием boost?

Среда, 26 Мая 2021 г. 19:47 + в цитатник
MasterFF: Не тогда же соединение будет каждый раз по новому устанавливаться, это лишено всякого смысла, с таким же успехом можно через обычный http тягать данные.

https://forum.sources.ru/index.php?showtopic=421482&view=findpost&p=3847724


Метки:  

Как читать данные из асинхронных WS с использованием boost?

Среда, 26 Мая 2021 г. 19:17 + в цитатник
shm: Непонято, что мешает сделать обработку пакета прямо внутри цикла обработки событий. Если есть непреодолимое желание поговнокодить (т.е. многократно запускать run() при необходимости любого сетевого взаимодействия), то то можно прямо в session засунуть свой буфер и прочитать его уже после выхода из run().

https://forum.sources.ru/index.php?showtopic=421482&view=findpost&p=3847722


Метки:  

Как читать данные из асинхронных WS с использованием boost?

Среда, 26 Мая 2021 г. 18:44 + в цитатник
MasterFF: Здравствуйте, у меня есть пример из boost который отлично работает — это пример асинхронного WS клиента. Но я не могу ни как разобраться с этой самой асинхронностью,
я хочу подключится к WS серверу, и после чего вернуть управление в основной поток, а данные которые присылает мне WS сервер класть в переменную что бы можно было их читать например в цикле. Данные из себя представляют строку переменной длины обычно пару тройку килобайт. Собственно прошу показать как это сделать, с синхронным клиентом все просто и понятно, а вот тут вот совсем не понятно… :(
Когда я вызываю ioc.run() - он запускает асинхроный цикл обработки событий — но это еще и является точкой выхода из приложения, то есть когда он завершён я уже не могу получить ни каких данных. %) во общем очень не понятно… Может кто ни буть накидать на коленки пример кода, он не обязательно должен работать, хотя бы приблизительно как это будет выглядеть, я дальше сам додумаю уже.

    #include "libs/beast/example/common/root_certificates.hpp"
    #include beast/core.hpp>
    #include beast/ssl.hpp>
    #include beast/websocket.hpp>
    #include beast/websocket/ssl.hpp>
    #include asio/strand.hpp>
    #include
    #include
    #include
    #include
    #include
    namespace beast = boost::beast; // from beast.hpp>
    namespace http = beast::http; // from beast/http.hpp>
    namespace websocket = beast::websocket; // from beast/websocket.hpp>
    namespace net = boost::asio; // from asio.hpp>
    namespace ssl = boost::asio::ssl; // from asio/ssl.hpp>
    using tcp = boost::asio::ip::tcp; // from asio/ip/tcp.hpp>
    //------------------------------------------------------------------------------
    // Report a failure
    void
    fail(beast::error_code ec, char const* what)
    {
    std::cerr << what << ": " << ec.message() << "\n";
    }
    // Sends a WebSocket message and prints the response
    class session : public std::enable_shared_from_this
    {
    tcp::resolver resolver_;
    websocket::stream<
    beast::ssl_stream> ws_;
    beast::flat_buffer buffer_;
    std::string host_;
    std::string text_;
    public:
    // Resolver and socket require an io_context
    explicit
    session(net::io_context& ioc, ssl::context& ctx)
    : resolver_(net::make_strand(ioc))
    , ws_(net::make_strand(ioc), ctx)
    {
    }
    // Start the asynchronous operation
    void run(
    char const* host,
    char const* port,
    char const* text)
    {
    // Save these for later
    host_ = host;
    text_ = text;
    // Look up the domain name
    resolver_.async_resolve(host,port,beast::bind_front_handler(&session::on_resolve,shared_from_this()));
    }
    void on_resolve(beast::error_code ec,tcp::resolver::results_type results)
    {
    if (ec) return fail(ec, "resolve");
    // Set a timeout on the operation
    beast::get_lowest_layer(ws_).expires_after(std::chrono::seconds(30));
    // Make the connection on the IP address we get from a lookup
    beast::get_lowest_layer(ws_).async_connect(results,beast::bind_front_handler(&session::on_connect,shared_from_this()));
    }
    void on_connect(beast::error_code ec, tcp::resolver::results_type::endpoint_type ep)
    {
    if (ec) return fail(ec, "connect");
    // Update the host_ string. This will provide the value of the
    // Host HTTP header during the WebSocket handshake.
    // See https://tools.ietf.org/html/rfc7230#section-5.4
    host_ += ':' + std::to_string(ep.port());
    // Set a timeout on the operation
    beast::get_lowest_layer(ws_).expires_after(std::chrono::seconds(30));
    // Set SNI Hostname (many hosts need this to handshake successfully)
    if (!SSL_set_tlsext_host_name(
    ws_.next_layer().native_handle(),
    host_.c_str()))
    {
    ec = beast::error_code(static_cast(::ERR_get_error()),
    net::error::get_ssl_category());
    return fail(ec, "connect");
    }
    // Perform the SSL handshake
    ws_.next_layer().async_handshake(ssl::stream_base::client,beast::bind_front_handler(&session::on_ssl_handshake,shared_from_this()));
    }
    void on_ssl_handshake(beast::error_code ec)
    {
    if (ec) return fail(ec, "ssl_handshake");
    // Turn off the timeout on the tcp_stream, because
    // the websocket stream has its own timeout system.
    beast::get_lowest_layer(ws_).expires_never();
    // Set suggested timeout settings for the websocket
    ws_.set_option(
    websocket::stream_base::timeout::suggested(
    beast::role_type::client));
    // Set a decorator to change the User-Agent of the handshake
    ws_.set_option(websocket::stream_base::decorator(
    [](websocket::request_type& req)
    {
    req.set(http::field::user_agent,
    std::string(BOOST_BEAST_VERSION_STRING) +
    " websocket-client-async-ssl");
    }));
    // Perform the websocket handshake
    ws_.async_handshake(host_, "/", beast::bind_front_handler(&session::on_handshake,shared_from_this()));
    }
    void on_handshake(beast::error_code ec)
    {
    if (ec) return fail(ec, "handshake");
    // Send the message
    ws_.async_write(net::buffer(text_),beast::bind_front_handler(&session::on_write,shared_from_this()));
    }
    void on_write(beast::error_code ec,std::size_t bytes_transferred)
    {
    boost::ignore_unused(bytes_transferred);
    if (ec) return fail(ec, "write");
    // Read a message into our buffer
    ws_.async_read(buffer_,beast::bind_front_handler(&session::on_read,shared_from_this()));
    }
    void on_read(beast::error_code ec,std::size_t bytes_transferred)
    {
    boost::ignore_unused(bytes_transferred);
    if (ec) return fail(ec, "read");
    // Close the WebSocket connection
    ws_.async_close(websocket::close_code::normal,beast::bind_front_handler(&session::on_close,shared_from_this()));
    }
    void on_close(beast::error_code ec)
    {
    if (ec) return fail(ec, "close");
    // If we get here then the connection is closed gracefully
    // The make_printable() function helps print a ConstBufferSequence
    std::cout << beast::make_printable(buffer_.data()) << std::endl;
    }
    };
    //------------------------------------------------------------------------------
    int main(int argc, char** argv)
    {
    // Check command line arguments.
    if (argc != 4)
    {
    std::cerr <<
    "Usage: websocket-client-async-ssl \n" <<
    "Example:\n" <<
    " websocket-client-async-ssl echo.websocket.org 443 \"Hello, world!\"\n";
    return EXIT_FAILURE;
    }
    auto const host = argv[1];
    auto const port = argv[2];
    auto const text = argv[3];
    // The io_context is required for all I/O
    net::io_context ioc;
    // The SSL context is required, and holds certificates
    ssl::context ctx{ ssl::context::tlsv12_client };
    // This holds the root certificate used for verification
    load_root_certificates(ctx);
    // Launch the asynchronous operation
    std::make_shared(ioc, ctx)->run(host, port, text);
    // Run the I/O service. The call will return when
    // the socket is closed.
    ioc.run();
    return EXIT_SUCCESS;
    }

https://forum.sources.ru/index.php?showtopic=421482&view=findpost&p=3847721


Метки:  

Написание программ и скриптов любой сложности на заказ, недорого

Среда, 26 Мая 2021 г. 16:44 + в цитатник
Гроза:
Цитата bizgur84 @
Всем привет! Появилось много свободного времени, принимаю новые заказы! Обращаться в телеграм @bizgur84

Здесь можно наработать клиентскую базу https://dealead.ru, а также искать исполнителей услуг и получать за это деньги.

https://forum.sources.ru/index.php?showtopic=414065&view=findpost&p=3847718


Метки:  

Прикольные новости

Среда, 26 Мая 2021 г. 16:25 + в цитатник
DrUnkard:
Цитата ya2500 @
Придя в себя, он включил свет, поняв, что перед ним пьяная и совершенно голая женщина

Набор слов какой-то. :blink: :D

https://forum.sources.ru/index.php?showtopic=199677&view=findpost&p=3847717


Метки:  

Не могу разобраться с результатом дизассемблирования IDA Pro (dll x86_64)

Среда, 26 Мая 2021 г. 13:50 + в цитатник
Qraizer:
Цитата vmprog @
1) Это что виртуальная таблица с методами какого то класса?
Возможно, но не обязательно. Обычно в VMT помещают дополнительную инфу, не являющуюся указателями на методы, например, смещение (обычно отрицательное) для this к началу стораджа объекта. Тут ничего такого не видно, так что возможно это либо её огрызок, либо что-то на неё похожее, например, вектор лямбд. Но судя по нижеследующему, это скорее адреса catch(), __except(), __finally или деструкторов для фрейма исключений.
Цитата vmprog @
2) Вот это вообще не понятно.
Это массив состояний для C++EH/SEH. Используется подсистемой обработки исключений. Подробнее можно полистать тут.
Цитата vmprog @
3) Вот это тоже не понятно.
Это WinAPI-шная структура, тоже имеет отношение к SEH.

https://forum.sources.ru/index.php?showtopic=421481&view=findpost&p=3847714


Метки:  

Как переключать мышиные кнопки , легким движением?

Среда, 26 Мая 2021 г. 13:21 + в цитатник
Alexei:
Цитата Gonarh @
Вот те сырец на сях и бинарь

Спасибо.
У меня заругалось на not заменил на !
Маленькая хрень : при возврате налево, успевает вылезти контекстное меню правой кнопки.

https://forum.sources.ru/index.php?showtopic=421478&view=findpost&p=3847712


Метки:  

Не могу разобраться с результатом дизассемблирования IDA Pro (dll x86_64)

Среда, 26 Мая 2021 г. 09:09 + в цитатник
vmprog: Здравствуйте.

Изучаю dll, которая была собрана под x86_64.

Изучаю откуда есть ссылки на функцию "call_f1_1806F3630" и не понимаю три их них. Это особенности ООП? Помогите разобраться:
https://disk.yandex.ru/i/crsvYi4QLBE6dQ

1) Это что виртуальная таблица с методами какого то класса?
    .rdata:0000000180B8E730 BC 06 03 80 01 00 00 00 off_180B8E730 dq offset sub_1800306BC ; DATA XREF: sub_180016668+28^o
    .rdata:0000000180B8E730 ; sub_180169E2C+2E^o ...
    .rdata:0000000180B8E738 44 8D 03 80 01 00 00 00 dq offset sub_180038D44
    .rdata:0000000180B8E740 F0 8D 03 80 01 00 00 00 dq offset sub_180038DF0
    ...
    .rdata:0000000180B8E800 30 03 6F 80 01 00 00 00 dq offset sub_1806F0330
    .rdata:0000000180B8E808 30 36 6F 80 01 00 00 00 dq offset call_f1_1806F3630
    .rdata:0000000180B8E810 20 3D 6F 80 01 00 00 00 dq offset sub_1806F3D20
    .rdata:0000000180B8E818 60 99 16 80 01 00 00 00 dq offset sub_180169960


2) Вот это вообще не понятно.
    .rdata:0000000180EDAE60 30 36 6F 00 FF FF FF FF stru_180EDAE60 IPtoStateMap
    .rdata:0000000180EDAE60 ; DATA XREF: .rdata:stru_180EDAE28^o
    .rdata:0000000180EDAE68 6B 36 6F 00 00 00 00 00 IPtoStateMap
    .rdata:0000000180EDAE70 C4 37 6F 00 FF FF FF FF IPtoStateMap
    .rdata:0000000180EDAE78 CB 37 6F 00 00 00 00 00 IPtoStateMap
    .rdata:0000000180EDAE80 71 93 AE 00 01 00 00 00 IPtoStateMap
    .rdata:0000000180EDAE88 80 93 AE 00 00 00 00 00 IPtoStateMap


3) Вот это тоже не понятно.
    .pdata:000000018110D94C 30 36 6F 00 DA 37 6F 00 88 1C+ RUNTIME_FUNCTION div>
    .pdata:000000018110D94C D0 00 rva stru_180D01C88>

https://forum.sources.ru/index.php?showtopic=421481&view=findpost&p=3847706


Метки:  

Как переключать мышиные кнопки , легким движением?

Вторник, 25 Мая 2021 г. 21:13 + в цитатник
Gonarh:
Цитата Alexei @
Ну да, особенно если ты не программист, и программируешь раз в год

Я тоже не погромизд, но шо там сложного. 3 строчки накарябать? Вот те сырец на сях и бинарь, потратил меньше 2 минут.
    #include
    #include
    int main() { SwapMouseButton(not (GetSystemMetrics(SM_SWAPBUTTON) != 0)); }

swapbuttons.7z (, : 5)

https://forum.sources.ru/index.php?showtopic=421478&view=findpost&p=3847701


Метки:  

головоломки на написание алгоритма

Вторник, 25 Мая 2021 г. 18:42 + в цитатник
AVA12:
Цитата
Зачем? Массив в 3 элемента допустИм? Да. Ну вот и усё, в таком случае есть вероятность, шо твой алгоритм накроется.

Это очевидный (мне) граничный случай. Очевидно же (мне), что перебор вариантов используется лишь тогда, когда есть выбор.

https://forum.sources.ru/index.php?showtopic=390451&view=findpost&p=3847697


Метки:  

головоломки на написание алгоритма

Вторник, 25 Мая 2021 г. 17:56 + в цитатник
DrUnkard:
    Не нравится это мне.
    Вот у меня была мысль такая.
    Предварительная оговорка - во входном массиве более 3-х элементов, иначе - тупо перемножаем все три элемента и результат будет один.
    Анализируем весь входной массив таким образом:
    1. Если все элементы отрицательные и нет 0, то выбираем три максимальных(минимальные по модулю), перемножаем, выводим результат
    2. Если все отрицательные и есть 0, то результат = 0.
    3. Если все положительные, то выбираем три максимальных, перемножаем, выводим результат.
    4. Если есть и положительные и отрицательные, то начинаем обработку:
    - Выбираем 3 числа, самые большие по модулю.
    - Анализируем знаки выбранных чисел и ветвимся на 4 ветки:
    а) Если все три +, то перемножаем и получаем результат.
    б) Если один + и два -, то перемножаем и получаем результат.
    в) Если три -, то число с минимумом по модулю заменяем максимальным положительным числом из входного массива, перемножаем, выводим результат.
    г) Если один - и два +, то, производим 3 вычисления:
    1. Отрицательное число меняем на максимальное положительное из оставшихся во входном массиве, перемножаем и запоминаем в MUL_1
    2. Первое положительное число меняем на максимальное по модулю из оставшихся в массиве отрицательных чисел, перемножаем, запоминаем в MUL_2
    3. Второе положительное число меняем на максимальное по модулю из оставшихся в массиве отрицательных чисел, перемножаем, запоминаем в MUL_3
    4. Выбираем наибольшее из MUL_1, MUL_2 и MUL_3 и выводим его как результат.

https://forum.sources.ru/index.php?showtopic=390451&view=findpost&p=3847695


Метки:  

Как переключать мышиные кнопки , легким движением?

Вторник, 25 Мая 2021 г. 17:52 + в цитатник
Alexei:
Цитата ^D^ima @
можно попробовать

https://forum.sources.ru/index.php?showtopic=421478&view=findpost&p=3847694


Метки:  

головоломки на написание алгоритма

Вторник, 25 Мая 2021 г. 16:28 + в цитатник
DrUnkard:
Цитата AVA12 @
Если не согласен - приведи пример массива длиной более трех

Зачем? Массив в 3 элемента допустИм? Да. Ну вот и усё, в таком случае есть вероятность, шо твой алгоритм накроется. :D

https://forum.sources.ru/index.php?showtopic=390451&view=findpost&p=3847690


Метки:  

Формулы для различных типов сигналов для генератора сигналов на звуковой карте

Вторник, 25 Мая 2021 г. 14:36 + в цитатник
Mikle: Навскидку.
Меандр:
    for (int i = 0; i < sampleLenght; i++)
    {
    float a = i * f / sampleRate;
    a = a - floor(a);
    data[i] = ((short)(a < 0.5f) * 2 - 1) * 32767;
    }

Пила:
    for (int i = 0; i < sampleLenght; i++)
    {
    float a = i * f / sampleRate;
    a = a - floor(a);
    data[i] = (short)(a * 65534 - 32767);
    }

Белый шум - это просто RAND(-32767..32767).

https://forum.sources.ru/index.php?showtopic=421480&view=findpost&p=3847686


Метки:  

Как переключать мышиные кнопки , легким движением?

Вторник, 25 Мая 2021 г. 13:53 + в цитатник

Метки:  

Прикольные новости

Вторник, 25 Мая 2021 г. 12:52 + в цитатник
OpenGL: Не понятно, почему шестой в тюрьме. Он, фактически, спас жертву :D

https://forum.sources.ru/index.php?showtopic=199677&view=findpost&p=3847681


Метки:  

Как переключать мышиные кнопки , легким движением?

Вторник, 25 Мая 2021 г. 12:08 + в цитатник
Alexei:
Цитата Gonarh @
полчаса

Ну да, особенно если ты не программист, и программируешь раз в год, при этом Новый год значительно чаще. :D
Наверно, стал бы делать "в лоб" - имитировать работу мышью ,на это потратил бы неделю.
Быстрее, вставить в мышь переключатель.

https://forum.sources.ru/index.php?showtopic=421478&view=findpost&p=3847680


Метки:  

Поиск сообщений в rss_forum_sources_ru
Страницы: 2628 ... 2557 2556 [2555] 2554 2553 ..
.. 1 Календарь