Re[2]: Среда для разработки DOS-like программы под Windows
От: CreatorCray  
Дата: 14.03.24 01:53
Оценка: :)
Здравствуйте, Marty, Вы писали:

M>Задолбаешься писать Win32 приложение.

Да ну!

R>>Можно ли предложить что-то более комфортное и при этом чтоб не совсем экзотика? Спасибо.

M>CSS?
Комфортное?
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Re[3]: Среда для разработки DOS-like программы под Windows
От: Marty Пират https://www.youtube.com/channel/UChp5PpQ6T4-93HbNF-8vSYg
Дата: 14.03.24 01:55
Оценка:
Здравствуйте, rosencrantz, Вы писали:

M>>CSS?


R>Я тут заранее прошу прощения, потому что вопрос и правда не такой однозначный. Мне сейчас вроде ещё нет 40 — и я пока легко читаю и разбираюсь. CSS я знаю, я на нём зарабатывал деньги. Но вопрос не про меня, а про товарища 60+ лет. У тебя есть уверенность, что такому человеку можно предложить изучить CSS, или ты просто меня пытаешься подколоть из-за одной из соседних тем? Вообще совершено не смешно. Я не могу сидеть рядом с этим человеком и подсказывать ему. У него самого нет желания изучать всю эту хипстерщину. Я ищу как ему помочь путём минимального участия.


Да, я тебя пытаюсь подколоть. Потому что я не знаю способов, как читать из COM-портов из браузера. Если ты такой способ знаешь, то может, расскажешь мне, и тогда я приму твой совет про CSS в соседней теме.
Маньяк Робокряк колесит по городу
Re[4]: Среда для разработки DOS-like программы под Windows
От: rosencrantz США  
Дата: 14.03.24 02:10
Оценка:
Здравствуйте, Marty, Вы писали:

M>Да, я тебя пытаюсь подколоть. Потому что я не знаю способов, как читать из COM-портов из браузера. Если ты такой способ знаешь, то может, расскажешь мне, и тогда я приму твой совет про CSS в соседней теме.


Я 2.5 года безработный, но давай я предположу, что в Google Chrome есть очередной экспериментальный API для доступа к COM-портам
Re[5]: Среда для разработки DOS-like программы под Windows
От: Marty Пират https://www.youtube.com/channel/UChp5PpQ6T4-93HbNF-8vSYg
Дата: 14.03.24 02:11
Оценка:
Здравствуйте, rosencrantz, Вы писали:

M>>Да, я тебя пытаюсь подколоть. Потому что я не знаю способов, как читать из COM-портов из браузера. Если ты такой способ знаешь, то может, расскажешь мне, и тогда я приму твой совет про CSS в соседней теме.


R>Я 2.5 года безработный, но давай я предположу, что в Google Chrome есть очередной экспериментальный API для доступа к COM-портам


А если нет?
Затолкаешь хром в метровую флешку контроллера?
Маньяк Робокряк колесит по городу
Re[6]: Среда для разработки DOS-like программы под Windows
От: rosencrantz США  
Дата: 14.03.24 02:13
Оценка:
Здравствуйте, Marty, Вы писали:

M>А если нет?

M>Затолкаешь хром в метровую флешку контроллера?

Не, давай я просто подпишусь, что съем свою программистскую одежу. Погуглишь — есть он или нет? Или мне погуглить?
Re[7]: Среда для разработки DOS-like программы под Windows
От: Marty Пират https://www.youtube.com/channel/UChp5PpQ6T4-93HbNF-8vSYg
Дата: 14.03.24 02:16
Оценка:
Здравствуйте, rosencrantz, Вы писали:

M>>А если нет?

M>>Затолкаешь хром в метровую флешку контроллера?

R>Не, давай я просто подпишусь, что съем свою программистскую одежу. Погуглишь — есть он или нет? Или мне погуглить?


А зачем мне тратить на это время, если это решение меня всё равно не устраивает?
Маньяк Робокряк колесит по городу
Re[8]: Среда для разработки DOS-like программы под Windows
От: rosencrantz США  
Дата: 14.03.24 02:17
Оценка:
Здравствуйте, Marty, Вы писали:

M>А зачем мне тратить на это время, если это решение меня всё равно не устраивает?


Тебя не развлечёт посмотреть как я жру джинсы и футболку?
Re[9]: Среда для разработки DOS-like программы под Windows
От: Marty Пират https://www.youtube.com/channel/UChp5PpQ6T4-93HbNF-8vSYg
Дата: 14.03.24 02:19
Оценка: +1
Здравствуйте, rosencrantz, Вы писали:

M>>А зачем мне тратить на это время, если это решение меня всё равно не устраивает?


R>Тебя не развлечёт посмотреть как я жру джинсы и футболку?


Нет
Маньяк Робокряк колесит по городу
Re[3]: Среда для разработки DOS-like программы под Windows
От: sergey2b ЮАР  
Дата: 14.03.24 02:53
Оценка:
Здравствуйте, rosencrantz, Вы писали:

если именно win32 То можно использовать VB6 or Delphi
Re[4]: Среда для разработки DOS-like программы под Windows
От: rosencrantz США  
Дата: 14.03.24 03:26
Оценка:
Здравствуйте, sergey2b, Вы писали:

S>Здравствуйте, rosencrantz, Вы писали:


S>если именно win32 То можно использовать VB6 or Delphi


Товарищ знает C (или даже C++ образца 20-летней давности), но не VB и не Паскаль. Так то и на JS можно написать — под JS точно *всё* есть.
Re[5]: Среда для разработки DOS-like программы под Windows
От: Marty Пират https://www.youtube.com/channel/UChp5PpQ6T4-93HbNF-8vSYg
Дата: 14.03.24 03:30
Оценка: :)
Здравствуйте, rosencrantz, Вы писали:

S>>если именно win32 То можно использовать VB6 or Delphi


R>Товарищ знает C (или даже C++ образца 20-летней давности), но не VB и не Паскаль. Так то и на JS можно написать — под JS точно *всё* есть.



И COM-порт? Потому что если есть COM-порт и и чел знает C, то если ему сделать "рыбу" для электрона, то доделать он думаю осилит, и это будет проще, чем писать на WinAPI
Маньяк Робокряк колесит по городу
Re: Среда для разработки DOS-like программы под Windows
От: Pavel Dvorkin Россия  
Дата: 14.03.24 04:49
Оценка:
Здравствуйте, rosencrantz, Вы писали:

R>У знакомого инженера-железячника возрастом за 60 возникла *одноразовая* задача сделать программку, которая управляет железкой через com-порт и рисует точками простенький график на экране.


Тут две задачи.

Управление через COM-порт ему все равно придется изучать.

Что же касается рисования, то можно взять MFC. Если создать каркасное SDI приложение, то там уже будет OnPaint, который остается дописать. Данные возьмет от COM-порта и запишет куда-то. Можно проигнорировать document-view архитектуру, и тогда это просто будет глобальный массив. Все, что ему придется знать — CDC::SetPixel, ну и может, CDC::LineTo и CDC::MoveTo. Понимать, что такое CDC и откуда он взялся, необязательно.
With best regards
Pavel Dvorkin
Отредактировано 14.03.2024 4:50 Pavel Dvorkin . Предыдущая версия .
Re[2]: Среда для разработки DOS-like программы под Windows
От: rosencrantz США  
Дата: 14.03.24 05:10
Оценка:
Здравствуйте, Pavel Dvorkin, Вы писали:

PD>Управление через COM-порт ему все равно придется изучать.


PD>Что же касается рисования, то можно взять MFC. Если создать каркасное SDI приложение, то там уже будет OnPaint, который остается дописать. Данные возьмет от COM-порта и запишет куда-то. Можно проигнорировать document-view архитектуру, и тогда это просто будет глобальный массив. Все, что ему придется знать — CDC::SetPixel, ну и может, CDC::LineTo и CDC::MoveTo. Понимать, что такое CDC и откуда он взялся, необязательно.


SetPixel, MoveTo и LineTo — вроде как тупо GDI. Как тут MFC помогает? А COM-порт вроде открываешь файл и читаешь/пишешь — единственная проблема — это чтоб не в UI-треде это делать.
Re[2]: Среда для разработки DOS-like программы под Windows
От: The Minister Земля  
Дата: 14.03.24 05:42
Оценка: +2
Здравствуйте, Pavel Dvorkin, Вы писали:

PD>Что же касается рисования, то можно взять MFC. Если создать каркасное SDI приложение, то там уже будет OnPaint, который остается дописать. Данные возьмет от COM-порта и запишет куда-то. Можно проигнорировать document-view архитектуру, и тогда это просто будет глобальный массив. Все, что ему придется знать — CDC::SetPixel, ну и может, CDC::LineTo и CDC::MoveTo. Понимать, что такое CDC и откуда он взялся, необязательно.


MFC — это какашка мамонта. Нет смысла его изучать в нашел время. Qt нисколько не сложнее, просто надо разобраться как он работает.
Re[3]: Среда для разработки DOS-like программы под Windows
От: Pavel Dvorkin Россия  
Дата: 14.03.24 07:11
Оценка:
Здравствуйте, rosencrantz, Вы писали:

R>SetPixel, MoveTo и LineTo — вроде как тупо GDI. Как тут MFC помогает?


Да, фактически так. Но не придется делать меню, тулбар и прочее, если он захочет.


А COM-порт вроде открываешь файл и читаешь/пишешь — единственная проблема — это чтоб не в UI-треде это делать.

И запустить будет будет проще сделать.

Впрочем, хозяин — барин. Я лишь предложил.
With best regards
Pavel Dvorkin
Re[3]: Среда для разработки DOS-like программы под Windows
От: Pavel Dvorkin Россия  
Дата: 14.03.24 07:13
Оценка:
Здравствуйте, The Minister, Вы писали:

TM>MFC — это какашка мамонта. Нет смысла его изучать в нашел время. Qt нисколько не сложнее, просто надо разобраться как он работает.


Именно "разобраться" ТС и не устраивает. В MFC можно не разбираться — на том уровне, что ему требуется.
With best regards
Pavel Dvorkin
Re[6]: Среда для разработки DOS-like программы под Windows
От: CreatorCray  
Дата: 14.03.24 08:13
Оценка:
Здравствуйте, Marty, Вы писали:

M>если ему сделать "рыбу" для электрона

M>это будет проще, чем писать на WinAPI

Если ему сделать рыбу на WinAPI то ему останется просто позвать тот же SetPixel
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Re[2]: Среда для разработки DOS-like программы под Windows
От: CreatorCray  
Дата: 14.03.24 08:13
Оценка:
Здравствуйте, Pavel Dvorkin, Вы писали:

PD>Управление через COM-порт ему все равно придется изучать.

Оно в WinAPI элементарное.

PD>Что же касается рисования, то можно взять MFC. Если создать каркасное SDI приложение,

Да ёлы палы, нафига MFC?
Вот WinAPI GDI минимум репро пример который я набросал недавно для репро бага в Crossover (баг оказался в libfreetype а не в wine)
Выкинуть отседова фонты и воткнуть SetPixel или MoveTo+LineTo и будет та самая рисовалка графика
Добавить WM_TIMER + SetTimer и там вытягивать данные из порта и класть себе куда нить в массив, откуда WM_PAINT будет рисовать по InvalidateRect
И это всё, больше ничего не надо.

#include <windows.h>
#include <list>

const WCHAR g_testString[] = L"THIS IS AN ALL CAPS TEST STRING";

std::list<HFONT> g_fonts;
bool g_checkerboard = false;

static void RenderFont (HDC hDC, HFONT font, int& y)
{
    size_t testStringLen = sizeof (g_testString) / sizeof (WCHAR) - 1;

    HGDIOBJ prevObj = SelectObject (hDC, font);
    TextOutW (hDC, 16, y, g_testString, testStringLen);

    SIZE sz;
    if (g_checkerboard)
    {
        int lastX = 0;
        bool flip = true;
        for (int i = 1; i <= testStringLen; i++)
        {
            GetTextExtentPoint32W (hDC, g_testString, i, &sz);
            if (flip)
                BitBlt (hDC, 16 + lastX, y, sz.cx - lastX, sz.cy, NULL, 0, 0, DSTINVERT);
            
            flip = !flip;
            lastX = sz.cx;
        }
    }
    else
    {
        GetTextExtentPoint32W (hDC, g_testString, testStringLen, &sz);
        BitBlt (hDC, 16 + sz.cx, y, 1, sz.cy, NULL, 0, 0, DSTINVERT);
    }

    SelectObject (hDC, prevObj);

    y += 16 + sz.cy;
}

static void Render (HDC hDC)
{
    BitBlt (hDC, 0, 0, 1024, 1024, NULL, 0, 0, WHITENESS);

    int y = 16;
    for (HFONT font : g_fonts)
        RenderFont (hDC, font, y);
}

static LONG WndProc (HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
    switch (uMsg)
    {
    case WM_PAINT:
        if (GetUpdateRect (hWnd, NULL, false))
        {
            PAINTSTRUCT    paint;
            HDC hDC = BeginPaint (hWnd, &paint);
            Render (hDC);
            EndPaint (hWnd, &paint);
        }
        break;

    case WM_CHAR:
        if (wParam == ' ')
            g_checkerboard = !g_checkerboard;

        InvalidateRect (hWnd, NULL, false);
        break;

    case WM_CLOSE:
        PostQuitMessage (0);
        break;

    default:
        return DefWindowProc (hWnd, uMsg, wParam, lParam);
    }

    return 1;
}

int main ()
{
    WNDCLASSEX    wndClass = {0};

    wndClass.cbSize            = sizeof (wndClass);
    wndClass.style            = CS_HREDRAW | CS_VREDRAW | CS_DBLCLKS;
    wndClass.lpfnWndProc    = (WNDPROC)WndProc;
    wndClass.hInstance        = NULL;
    wndClass.lpszClassName    = L"TestFonts";

    if (!RegisterClassExW (&wndClass))
        return false;

    for (int height = 10; height < 20; height++)
    {
        g_fonts.push_back (CreateFontW (height, 0, 0, 0, FW_NORMAL,    0, 0, 0, 0, 0, 0, NONANTIALIASED_QUALITY, DEFAULT_PITCH, L"Arial"));
        g_fonts.push_back (CreateFontW (height, 0, 0, 0, FW_NORMAL,    0, 0, 0, 0, 0, 0, ANTIALIASED_QUALITY, DEFAULT_PITCH, L"Arial"));
    }

    HWND hWnd = CreateWindowExW (0, wndClass.lpszClassName, wndClass.lpszClassName, WS_TILEDWINDOW, 0, 0, 800, 1024, NULL, NULL, NULL, NULL);
    ShowWindow (hWnd, SW_SHOWDEFAULT);

    MSG msg;
    while (GetMessage (&msg, NULL, 0, 0))
    {
        TranslateMessage (&msg);
        DispatchMessage (&msg);
    }

    CloseWindow (hWnd);
}
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Re[4]: Среда для разработки DOS-like программы под Windows
От: CreatorCray  
Дата: 14.03.24 08:13
Оценка:
Здравствуйте, Pavel Dvorkin, Вы писали:

PD>А COM-порт вроде открываешь файл и читаешь/пишешь

угу

PD>единственная проблема — это чтоб не в UI-треде это делать.

Пожно в отдельном потоке сделать, и critical section прикрутить для синхронизации
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Re[4]: Среда для разработки DOS-like программы под Windows
От: CreatorCray  
Дата: 14.03.24 08:13
Оценка: +1
Здравствуйте, Pavel Dvorkin, Вы писали:

PD>Именно "разобраться" ТС и не устраивает. В MFC можно не разбираться — на том уровне, что ему требуется.


Сколько тут на обсуждеж потрачено — давно рыбу написали бы уже.
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.