Установка Visual Studio 2019 в 2024 году
Цитата: Влад от 03.07.2024, 20:49Всем привет🖐
Подскажите пожалуйста, как сейчас можно скачать Visual Studio 2019. Через оффициальный сайт есть возможность скачать только 22 студию, а в документации Microsoft написано, что скачивание старых редакций возможно только в виде Enterprise и Professional версий.
Заранее спасибо!
Всем привет🖐
Подскажите пожалуйста, как сейчас можно скачать Visual Studio 2019. Через оффициальный сайт есть возможность скачать только 22 студию, а в документации Microsoft написано, что скачивание старых редакций возможно только в виде Enterprise и Professional версий.
Заранее спасибо!
Цитата: Влад от 04.07.2024, 07:51Спасибо большое, @pingluxi.
Спасибо большое, @pingluxi.
Цитата: Влад от 16.08.2024, 12:14Здравствуйте🖐
Сегодня обнаружил, что при попытке скачивания Visual Studio 2019 по ссылке выше, происходит перенаправление на эту страницу. Подскажите пожалуйста, это происходит у всех? Если да, то можно ли это обойти или есть альтернативный источник скачивания?
Здравствуйте🖐
Сегодня обнаружил, что при попытке скачивания Visual Studio 2019 по ссылке выше, происходит перенаправление на эту страницу. Подскажите пожалуйста, это происходит у всех? Если да, то можно ли это обойти или есть альтернативный источник скачивания?
Цитата: Ivan_00 от 16.08.2024, 13:24wave, Здравствуй, вот ссылка, сам вчера ставил, главное, чтобы установщик был. На сайте редиректит, но сам установщик качает 2019.
wave, Здравствуй, вот ссылка, сам вчера ставил, главное, чтобы установщик был. На сайте редиректит, но сам установщик качает 2019.
Цитата: Имир от 17.10.2024, 20:21Всем привет! Помогите, пожалуйста, собрать midi-визуалайзер в Microsoft Visual Studio! Буду крайне признателен и в долгу не останусь!
На github нашёл Siv3D: C++ Framework для творческого кодирования. Вроде бы всё сделал по инструкции, но ничего не получилось((
Должна получиться вот такая визуализация миди-файла. Код был выложен на странице github[spoiler title="Код"]
# 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)); } }
[/spoiler]
Всем привет! Помогите, пожалуйста, собрать 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));
}
}
Цитата: Pixi от 19.10.2024, 05:28@imir, привет, скорее это сообщение, нужно в другую тему отправить 😅
@imir, привет, скорее это сообщение, нужно в другую тему отправить 😅
Цитата: Имир от 19.10.2024, 23:54Цитата: Pixi от 19.10.2024, 05:28@imir, привет, скорее это сообщение, нужно в другую тему отправить
Здравствуйте! Вы случайно не знаете, к кому бы мне обратиться лично с этим вопросом? (Не за бесплатно, разумеется)
Цитата: Pixi от 19.10.2024, 05:28@imir, привет, скорее это сообщение, нужно в другую тему отправить
Здравствуйте! Вы случайно не знаете, к кому бы мне обратиться лично с этим вопросом? (Не за бесплатно, разумеется)
Цитата: Андрей от 20.10.2024, 10:04Имир, Добрый день.
За обсуждение подобных вопросов у нас только бан получить можно. Правила форума об этом прямо говорят.
Имир, Добрый день.
За обсуждение подобных вопросов у нас только бан получить можно. Правила форума об этом прямо говорят.
Цитата: Rosya от 05.01.2025, 22:46Добрый вечер.
Если кому то еще нужно, то на данный момент Visual Studio 2019 Community можно спокойно скачать с серверов Microsoft по прямой ссылке.
Добрый вечер.
Если кому то еще нужно, то на данный момент Visual Studio 2019 Community можно спокойно скачать с серверов Microsoft по прямой ссылке.