Вы должны войти, чтобы создавать сообщения и темы.

Установка Visual Studio 2019 в 2024 году

Всем привет🖐

Подскажите пожалуйста, как сейчас можно скачать Visual Studio 2019. Через оффициальный сайт есть возможность скачать только 22 студию, а в документации Microsoft написано, что скачивание старых редакций возможно только в виде Enterprise и Professional версий.

Заранее спасибо!

Привет, вы не там искали, вот страничка где можно скачать

Лайкнул Влад
Влад

Спасибо большое, @pingluxi.

Здравствуйте🖐

Сегодня обнаружил, что при попытке скачивания Visual Studio 2019 по ссылке выше, происходит перенаправление на эту страницу. Подскажите пожалуйста, это происходит у всех? Если да, то можно ли это обойти или есть альтернативный источник скачивания?

Лайкнул Pixi
Pixi

wave, Здравствуй, вот ссылка, сам вчера ставил, главное, чтобы установщик был. На сайте редиректит, но сам установщик качает 2019.

Лайкнули Pixi и Влад
PixiВлад

Всем привет! Помогите, пожалуйста, собрать midi-визуалайзер в Microsoft Visual Studio! Буду крайне признателен и в долгу не останусь!
На github нашёл Siv3D: C++ Framework для творческого кодирования. Вроде бы всё сделал по инструкции, но ничего не получилось((
Должна получиться вот такая визуализация миди-файла. Код был выложен на странице github

Код

# include <Siv3D.hpp>

struct Note
{
    uint32 ch;
    uint32 noteNumber;
    int32 startMillisec;
    int32 lengthMillisec;

    double alpha;
    bool barPassed;
    bool onBar;
};

void Main()
{
    Window::Resize(1280, 720);

    Midi::Open(Dialog::GetOpenMidi().value());
    const auto score = Midi::GetScore();
    Array<Note> noteRects;
    uint32 minPitch = 127, maxPitch = 0;

    for (auto ch : step(static_cast<uint32>(score.size())))
    {
        for (const auto& note : score[ch])
        {
            noteRects.push_back({ ch, note.noteNumber, note.startMillisec, note.lengthMillisec, 1.0, false, false });
            minPitch = Min(minPitch, note.noteNumber);
            maxPitch = Max(maxPitch, note.noteNumber);
        }
    }

    while (System::Update())
    {
        const double scale = 0.2;
        const int32 offset = 160;
        const int32 offsetMillisec = static_cast<int32>(offset / scale);
        const RectF line(offset - 1, 0, 6, Window::Height());
        const double blockHeight = static_cast<double>(Window::Height()) / (maxPitch - minPitch + 1);

        if (!Midi::IsPlaying())
        {
            for (auto& note : noteRects)
            {
                note.alpha = 1.0;
                note.barPassed = false;
                note.onBar = false;
            }
        }

        if (Input::MouseL.clicked)
        {
            Midi::Play();
        }

        const double pos = (Midi::GetPosSec() * 1000 - 100)* scale;
        const int32 bar = static_cast<int32>(Midi::GetPosSec() * 1000 - 100);
        const int32 left = bar - offsetMillisec;
        const int32 right = static_cast<int32>(left + Window::Width() / scale);

        Array<size_t> visibleNoteIndices;
        size_t index = 0;

        for (auto& note : noteRects)
        {
            if (right < note.startMillisec || (note.startMillisec + note.lengthMillisec) < left)
            {
                ++index;
                continue;
            }

            note.onBar = note.startMillisec <= bar && bar <= (note.startMillisec + note.lengthMillisec);
            note.barPassed = note.startMillisec <= bar;

            if (note.barPassed)
            {
                note.alpha *= note.onBar ? 0.98 : 0.85;
            }

            visibleNoteIndices.push_back(index++);
        }

        Graphics2D::SetBlendState(BlendState::Default);

        for (auto& i : visibleNoteIndices)
        {
            const auto& note = noteRects[i];

            if (!note.barPassed)
            {
                const RectF r(note.startMillisec * scale + offset - pos, (maxPitch - note.noteNumber) * blockHeight, note.lengthMillisec * scale, blockHeight);
                RoundRect(r, 4).draw(ColorF(0.2, 0.25, 0.3));
            }
        }

        Graphics2D::SetBlendState(BlendState::Additive);

        for (auto& i : visibleNoteIndices)
        {
            const auto& note = noteRects[i];

            if (note.barPassed)
            {
                const RectF r(note.startMillisec * scale + offset - pos, (maxPitch - note.noteNumber) * blockHeight, note.lengthMillisec * scale, blockHeight);
                RoundRect(r, 5).drawShadow({ 0, 0 }, 12 + note.alpha * 8, 2 + note.alpha * 8, HSV(30 + note.ch * 100, 0.5, 1).toColorF(note.alpha*0.4));
            }
        }

        for (auto& i : visibleNoteIndices)
        {
            const auto& note = noteRects[i];

            if (note.barPassed)
            {
                const RectF r(note.startMillisec * scale + offset - pos, (maxPitch - note.noteNumber) * blockHeight, note.lengthMillisec * scale, blockHeight);
                RoundRect(r, 4).draw(HSV(30 + note.ch * 100, 1, 1).toColorF(note.alpha));
            }
        }

        line.draw(Alpha(20));
    }
}

 

@imir, привет, скорее это сообщение, нужно в другую тему отправить 😅

Цитата: Pixi от 19.10.2024, 05:28

@imir, привет, скорее это сообщение, нужно в другую тему отправить 😅

Здравствуйте! Вы случайно не знаете, к кому бы мне обратиться лично с этим вопросом? (Не за бесплатно, разумеется)

Имир, Добрый день.

За обсуждение подобных вопросов у нас только бан получить можно. Правила форума об этом прямо говорят.

Голова дана человеку не для того, чтобы кушать, а для того, чтобы думать.

Добрый вечер.
Если кому то еще нужно, то на данный момент Visual Studio 2019 Community можно спокойно скачать с серверов Microsoft по прямой ссылке.

Лайкнули Влад, Qand и Владимир
ВладQandВладимир