Cd-m.ru

ПК Журнал СД-М
7 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Решение проблем с динамической библиотекой

Решение проблем с динамической библиотекой vog.dll

скачать vog dll

Замена библиотеки вручную является более щадящим вариантом, поскольку позволяет обойтись без деинсталляции GTA: SA и модификации MTA, что влечёт за собой потерю пользовательских настроек.

    Загрузите vog.dll в подходящее место на HDD.

Загруженный файл vog

Открыть директорию мода для решения проблем с файлом vog dll

Переместить файл vog dll в директорию мода для решения проблем с ним

Попробуйте запустить модификацию – проблема скорее всего будет решена. Если же неполадка всё ещё наблюдается, переходите к следующему методу.

Способ 2: Переустановка GTA: SA и модификации

Радикальный способ, которому под силу устранить рассматриваемую неполадку – полная переустановка игры и мода к ней.

Удаление программы через Revo-Uninstaller

    Удалите игру одним из доступных способов – рекомендуем универсальное решение для всех версий Windows.

В некоторых случаях лучше всё-таки задействовать специфичный для каждой системы метод деинсталляции.

Загрузить инсталлятор мода MTA для решения проблемы с vog dll

Принять соглашение установки мода MTA для решения проблемы с vog dll

Директория игры для установки мода MTA для решения проблемы с vog dll

Выбор установки компонентов мода MTA для решения проблемы с vog dll

Процесс установки мода MTA для решения проблемы с vog dll

Завершение установки мода MTA для решения проблемы с vog dll

Попробуйте запустить игру – на этот раз всё должно быть в норме.

ЗакрытьМы рады, что смогли помочь Вам в решении проблемы.

Помимо этой статьи, на сайте еще 12369 инструкций.
Добавьте сайт Lumpics.ru в закладки (CTRL+D) и мы точно еще пригодимся вам.

Отблагодарите автора, поделитесь статьей в социальных сетях.

ЗакрытьОпишите, что у вас не получилось. Наши специалисты постараются ответить максимально быстро.

Скачать vog.dll

Данная тема специально создана для размещения пользовательских плагинов для HoMM3.
Вопросы/проблемы/обсуждение по таким плагинам оставлять ЗДЕСЬ

При размещении плагина следует указывать:
1. название :
2. автор:
3. язык:
4. поддерживаемые версии:
5. ссылка на скачивание:
6. исходник (по желанию). Обязательно под спойлером!
7. скриншот (желательно).
8. инструкция по установке.

Напоминаю, что плагины для ERA II следует закидывать в «<папка с эрой>Mods<название_мода>EraPlugins. «

Плагины для ERA II могут иметь расширения *.dll или *.era
Для информации: файлы *.era — это просто переименнованные файлы *.dll.
Внимание! загрузка плагинов просиходит так: сначала грузятся все *.era файлы, потом код игры патчит WoG, а только потом грузятся *.dll

Также, вот ссылки на другие форумы с пользовательскими плагинами: DF2 и HandBookHMM
Тема Как создать плагин.

WoG Native Dialogs
(Вог диалоги в H3 исполнении)

Основная цель: поддержка мастшабирования высоких разрешений при игре с HD-модом

На данный момент переписаны:

Image: image.png

Image: Wog-Options.jpg

Image: Wog-Options.jpg

Image: Choose-Attack.jpg

Image: Dlg-Castle-Rubuild.png

Image: nXDpsj3.jpg

Image: image.jpg

Image: image.jpg

Image: DlgIFDE.jpg

Автор: igrik
Язык: Rus/Eng
Поддерживаемые версии: HoMM3 ERA II
Исходники: находятся в моде
Способ установки: указать корневую папку ERA

Исправление бага с исчезновением улучшенного отряда нейтральных монстров после боя

Автор: igrik
Язык: не имеет значения
Поддерживаемые версии: ERA, SoD
Способ установки: Класть в EraPlugins любого мода

Защита артефактов, пандор и свитков

Автор: igrik
Поддерживаемые версии: ERA, SoD, HotA
Способ установки: Класть в EraPlugins любого мода
Описание: теперь артефакты, ящики пандор и свитки защищены рядом стоящими монстрами
(монстр защищает объекты согласно красной рамки):

Image: image.jpg

Переигрываемая битва для ERA

Автор: igrik
Язык: не имеет значения
Поддерживаемые версии: только ERA
Способ установки: Класть в EraPlugins любого мода

Image: image.png

Для поддержки ERM скриптов и событий в плагине предусмотрен вызов 2 функций:
!?FU(OnBeforeBattleReplay); [после битвы: если переигровка гарантированно будет]
!?FU(OnBattleReplay); [перед битвой: если переигровка уже началась]

Image: image.png

Последовательность вызова такова:

Отключение теоретической битвы ИИ против ИИ
Плагин заменяет теоретическую битву на быструю битву, в результате чего махом решаются многие баги в битве ИИ против ИИ
Попутно плагин дает возможность в штатном режиме работать чит-команде » gosolo » (ранее в ERA сыпались ошибки при работе этого кода)

Автор: igrik
Язык: не имеет значения
Поддерживаемые версии: ERA
Способ установки: класть в EraPlugins любого мода

Подробные описания заклинаний

Автор: igrik
Язык: английский или русский (мод сам понимает когда какой язык применять)
Поддерживаемые версии: ERA
Способ установки: устанавливать как мод ERA

Image: Spells-Description1.png
Image: Spells-Description4.png
Image: Spells-Description5.png
Image: Spells-Description2.png
Image: Spells-Description3.png

Расширенное окно выбора скорости битвы

Автор: igrik , идея взята из MoP
Язык: любой
Поддерживаемые версии: ERA
Способ установки: устанавливать как мод ERA

Image: 1.png

Image: widget.png?style=banner2

Причину вылета я нашёл.
На самом деле код функции (которая вылетает) давным давно не менялся.
Я не знаю почему раньше не вылетало, а с эры 2.9.3 начало вылетать.

На данный момент ошибку я исправил. Больше вылетов нет.
Плагин обновлен по той же ссылке: game bug fixes.dll

Диалог заданий (журнал)

Автор: igrik
Язык: не зависит от языка
Поддерживаемые версии: ERA
Способ установки: класть в папку EraPlugins

Функционал:
ПКМ: детальное описание задания
ЛКМ: показать расположение хижины провидца или стража на КП

Image: Quest-Dlg1.png

Реальный календарь
Привычные в игре день/неделя/месяц превратятся в привычные в реальной жизни числа/дни недели/месяцы календаря.

Автор: feanor ?
Язык: русский
Поддерживаемые версии: ERA
Способ установки: класть в EraPlugins любого мода

Image: 71054e4dab12.jpg

H3.RMGDescription
Allows customization and localization of RMG Scenario Information, instead of using hardcoded English text.

Author: RK
Language: English included, translation possible through json
Supported versions: SoD, ERA

Installation: run [Other] RMGDescription.exe and follow steps

Thanks to Archer30 for bug report and initial testing!

БЫЛО Image: hPN264E.png
СТАЛО Image: iJfNZnA.png

Панель заклинаний в бою

Идея взята из плагина SOD_SP by RoseKavalier

Автор: igrik
Язык: не имеет значения
Поддерживаемые версии: только ERA
Способ установки: класть в папку EraPlugins

Image: Battle-Spells-Menu.jpg

Способ использования (если никто не знает):
— привязать заклинание к горячей клавише: ЛКМ на кнопке
— отвязать заклинание от горячей клавиши: Ctrl+ЛКМ на кнопке
— посмотреть информацию по заклинанию: ПКМ на кнопке
— использовать заклинание: нажатие клавиш 1-0 в бою
— выход из меню выбора заклинаний: ESC или ЛКМ за пределами окна
— для каждого цвета игрока: свой набор привязанных заклинаний
— для героев одного и того же цвета: панель одна на всех
— если у героя нет привязанного заклинания: выведется «Нет активных заклинаний»
— панель работает в сетевых битвах
— панель НЕ работает в битве Человек-Человек
— при старте новой карты: панель нужно настраивать заново
— при загрузке сохранения: настройки панели прочитаются из загружаемого сейва

** не спрашивайте почему я принял то или иное решение: данные тезисы — уже обдуманный и окончательный выбор. Меняться они не будут.

Автор: igrik
Особая благодарность: RoseKavalier , XEPOMAHT .

Язык: не имеет значения
Поддерживаемые версии: только ERA
Способ установки: устанавливать как мод для ERA

В дополнение к стандартному набору размеров, мод добавляет поддержку очень больших карт, но только при генерации случайных карт:
— H (180×180)
— XH (216×216)
— G (252×252)

Image: XXL-mod.jpg

Внимание! Использовать только с HD-модом.
Без HD-мода миникарта будет рисоваться с ошибками!
Позже, эта проблема будет решена.

Кнопки выбора случайной карты использованы из HoMM3 HotA .

Автор: Raistlin
Особая благодарность: XEPOMAHT (дельная критика), igrik (новый вариант кода, который я частично скопировал), planetavril (идея)

Язык: можно конфигурировать; по умолчанию английский
Поддерживаемые версии: только ERA
Способ установки: Arena.dll класть в EraPlugins, Arena.ini — в основную папку с модом

Описание: превращает все Арены с подтипом, отличным от 0, в Колизеи Магов (подсказку при этом нужно заменять самостоятельно). Также плагин улучшает алгоритм выбора навыка для героев ИИ (раньше выбор был случайный) и добавляет проверку на переполнение — теперь герои не могут получить больше чем 99 очков первичных навыков.
По поводу Колизеев Магов — это Арены, где предлагают выбор между Силой и Знанием. Плагин работает примерно так: если у Арены подтип 0, предлагается выбор между Атакой и Защитой, иначе — между Силой и Знанием (тексты при этом берутся из Arena.ini).

Автор: Raistlin
Особая благодарность: XEPOMAHT (указание на изобретение велосипеда), Panda (идея)

Язык: можно конфигурировать; по умолчанию английский
Поддерживаемые версии: только ERA
Способ установки: ViewSpellBookOfTavernHeroes.dll класть в EraPlugins, ViewSpellBookOfTavernHeroes.ini — в основную папку с модом

Читать еще:  Не видит флешку, но звук подключения есть

Описание: при просмотре информации о герое в таверне игрок теперь сможет открыть его книгу заклинаний (текст вопроса берется из ViewSpellBookOfTavernHeroes.ini). Кстати, язык можно контролировать с помощью SN:F, ведь ERA позволяет перезаписывать данные в ini-файлах.

Дополнительный комментарий: мой основной проект — глобальный мод WoG Ultra Edition скоро получит очень крупное обновление и станет куда более продвинутым в техническом плане. Плагины, которые я выкладываю здесь, — это в каком-то смысле демонстрация его новых возможностей, а в самом обновлении будет еще больше всего интересного, не пропустите

Как построить графический пользовательский интерфейс в C++?

Все мои программы C++ до сих пор использовали интерфейс командной строки, и единственный другой язык, с которым у меня есть опыт работы, — это PHP, который не поддерживает GUIs.

С чего начать Программирование графического интерфейса пользователя в C++? Как мне его создать?

8 ответов

  • Могу ли я построить графический интерфейс с ocaml верхнего уровня?

À несколько вопросов, касающихся интерактивного программирования верхнего уровня и графического программирования UI: Можно ли динамически построить графический интерфейс с верхнего уровня ocaml? Можно ли также использовать графическую библиотеку?

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

По сути, оконная система операционной системы предоставляет некоторые вызовы API, которые вы можете выполнять для выполнения таких заданий, как создание окна или установка кнопки в окне. В принципе, вы получаете набор заголовочных файлов, и вы можете вызывать функции в этих импортированных библиотеках, как и в случае с stdlib и printf .

Каждая операционная система поставляется со своим собственным набором инструментов GUI, набором заголовочных файлов и вызовами API, а также своим собственным способом выполнения задач. Существуют также кросс-платформенные наборы инструментов , такие как GTK , Qt и wxWidgets , которые помогают создавать программы, работающие в любом месте. Они достигают этого, имея одни и те же вызовы API на каждой платформе, но различную реализацию для тех функций API, которые вызывают собственные вызовы OS API.

Одна вещь, которую они все будут иметь вместе, которая будет отличаться от программы CLI, — это то, что называется циклом событий. Основная идея там несколько сложна, и ее трудно сжать, но по сути это означает, что в вашем основном классе/основной функции не так уж много происходит, за исключением:

  • проверьте очередь событий, если есть какие-либо новые события
  • если есть, отправьте эти события соответствующим обработчикам
  • когда вы закончите, верните управление обратно в операционную систему (обычно с помощью специального вызова функции «sleep», «select» или «yield»)
  • затем функция yield вернется, когда операционная система будет завершена, и у вас будет еще один цикл.

Существует множество ресурсов о программировании на основе событий. Если у вас есть какой-либо опыт работы с JavaScript, это та же основная идея, за исключением того, что у вас, сценариста, нет доступа или контроля над самим циклом событий или над тем, какие события существуют, ваша единственная задача-писать и регистрировать обработчики.

Вы должны иметь в виду, что программирование GUI в целом невероятно сложно и сложно. Если у вас есть такая возможность, на самом деле гораздо проще просто интегрировать встроенный webserver в вашу программу и иметь интерфейс на основе HTML/web. Единственное исключение, с которым я столкнулся, — это учебные пособия Apple Cocoa + Xcode +interface builder+, которые делают его наиболее доступной средой для людей, незнакомых с программированием GUI, которые я видел.

Существует множество бесплатных портативных библиотек GUI , каждая из которых имеет свои сильные и слабые стороны:

    (на основе GTK+ )
  • .

Особенно Qt имеет хорошие учебные пособия и инструменты, которые помогут вам начать работу. Наслаждайтесь!

Однако обратите внимание, что вам следует избегать специфичных для платформы функций, таких как Win32 API или MFC. Это излишне привязывает вас к определенной платформе почти без каких-либо преимуществ.

  • как обычно строится пользовательский интерфейс?

У меня есть четыре класса полета, пассажир, схема рассадки и список ожидания. Я пытаюсь создать графический интерфейс. Я новичок в swing, поэтому не знаю, как это делается. должен ли я создать отдельный класс для графического интерфейса и построить там весь графический интерфейс или я должен.

Мне нужно создать графический интерфейс для проекта winform c#. Есть фоновое изображение и набор маленьких прозрачных картинок. Пользователь должен иметь возможность помещать эти маленькие изображения на задний план, выбирать их и свободно перемещать (я также должен рассчитать расстояние между.

Независимый от ОС алгоритм » Создание GUI приложения в C++ в три этапа «:

enter image description here

Создать новый проект (приложение Qt виджетов)

enter image description here

Поздравляю, вы получили свой первый GUI в C++.

Теперь вы готовы прочитать много документации , чтобы создать что-то более сложное, чем приложение «Hello world» GUI.

Учитывая комментарий «скажем Windows XP в качестве примера», то ваши варианты:

Взаимодействуйте непосредственно с операционной системой через ее API, что для Microsoft Windows является неожиданным вызовом Windows API . Окончательная ссылка на WinAPI — это веб- сайт Microsoft MSDN . Популярным онлайн-учебником для начинающих для этого является учебник по программированию theForger Win32 API . Классическая книга для этого- Программирование Чарльза Петцольда Windows, 5-е издание .

Используйте специальную библиотеку платформы (как с точки зрения OS , так и компилятора), такую как MFC, которая обертывает WinAPI в класс C++. Ссылка для этого снова MSDN. Классическая книга для этого — » Программирование Windows с MFC» Джеффа Прозиза, 2-е издание . Если вы используете, скажем, CodeGear C++ Builder, то здесь опция VCL .

Используйте кроссплатформенную библиотеку, такую как GTK+ (обертка C++: gtkmm), Qt, wxWidgets или FLTK , которые обертывают конкретные OS API. Преимущества этих методов заключаются в том, что в целом ваша программа может быть скомпилирована для разных OS без необходимости изменять исходные коды. Как уже упоминалось, у каждого из них есть свои сильные и слабые стороны. Одним из соображений при выборе того, какой из них использовать, является его лицензия. Для приведенных примеров GTK+ & gtkmm является лицензией под LGPL, Qt находится под различными лицензиями, включая проприетарную опцию, wxWidgets находится под собственной лицензией wxWindows (с переименованием в лицензию wxWidgets), а FLTK находится под лицензией LGPL с исключением. Для получения справочных материалов, учебников и / или книг обратитесь к веб-сайту каждого из них для получения подробной информации.

Поскольку я уже был там, где ты сейчас находишься, я думаю, что смогу помочь тебе.

Дело в том, что нет простого способа сделать GUI. GUI сильно зависят от платформы и специфического кода OS, поэтому вам следует начать читать документацию по управлению окнами APIs вашей целевой платформы/OS. Хорошо то, что существует множество библиотек, которые решают эти ограничения и абстрактные различия в архитектуре в единую многоплатформенную API. Те, которые предлагались ранее, GTK и Qt, являются некоторыми из этих библиотек.

Но даже они немного слишком сложны, поскольку одновременно вводится множество новых концепций, типов данных, пространств имен и классов. По этой причине они обычно поставляются в комплекте с некоторым редактором GUI WYSIWYG. Они в значительной степени делают возможным программирование программного обеспечения с GUIs.

Читать еще:  Как исправить ошибку 0x80070422 в Windows 10

Подводя итог, можно сказать, что существуют также несвободные «environments» для разработки GUI, такие как Visual Studio от Microsoft. Для тех, у кого есть опыт Delphi, Visual Studio может быть более знакомым. Существуют также бесплатные альтернативы полной среде Visual Studio , поставляемой Microsoft: Visual Studio Express, чего более чем достаточно для начала разработки GUI.

Герои Меча и Магии 3.52 и 3.58f WOG Во Имя Богов

Как говорится в одной легенде, плодородная земля Эрафии и все существа, населяющие её, были созданы богами, став украшением их вечного существования. Постигая этот мир, они не вмешивались в ход событий и не могли точно предвидеть их. Этот непостоянный и переменчивый мир стал для них поистине превосходным развлечением.

Другая легенда утверждает полностью противоположное. Одним «прекрасным» днем, божественная воля будет без приглашения вторгаться в мир, созданный богами, и приводить в беспорядок размеренную жизнь каждого, кто населяет его.

Но позвольте нам отложить в сторону старые легенды. Мы будем сочинять нашу собственную. Вы – не бог, а просто Герой Эрафии. И теперь для вас наступило время действовать.

Главными дополнениями к уже существующим версиям игры Heroes of Might & Magic являются:
* разрушение городов
* монстры 8 уровня
* другие нейтральные монстры
* боги
* новые герои
* скриптовый язык
* помимо редактора кампаний и карт есть генератор случайный карт

Эта игра больше известна как «In the Wake of Gods» или «Wake of Gods» или просто «Герои WoG». WoG представляет из себя неофициальное и некоммерческое (а значит и совершенно бесплатное) дополнение к популярной пошаговой стратегии «Герои меча и магии 3». Изначально в модификации WoG только объединялись все новшества, из аддонов «Armageddon’s Blade» и «The Shadow of Death». Теперь же WoG является плодом труда международного объединения фанатов Heroes III, известного как команда WoG.

Многим нравится эта стабильная и очень играбельная версия, но скриптовый язык позвил большему количеству людей делать и дальнейшие обновления и продолжения этой игры.

скачать Герои меча и магии 3.52: Во имя богов бесплатно без торрента одним файлом

Официальная информация

Также скачайте и прочитайте руководство по игре Герои Меча и Магии на русском языке.формат PDF 3.45 мб.

После завершения процесса установки диск можно демонтировать, для самой игры он не нужен.

Герои Меча и Магии 3.58f Во имя Богов

Данное обновление приведет к капитальным изменениям в геймплее игры. Вот например:
* командиры
* Новые артефакты героя и командира, подробнее
* гарнизоны и форты
* обучение стрелковых башень
* меню вогификации
* новый ресурс – Мифрил
* Сопряжение превращено в сборище разного сброда
* Возникновение новых и модернизация старых навыков
* Возможность обучиться двум дополнительным навыкам

Ранее почти бесполезный навык «Разведка» теперь помимо открытия территории он дает каждую неделю отряд воров. Многим не нравился такой навык как «Зоркость» мало толку от какой-то там возможности изучить заклинание героя противника после победы над ним — теперь заклинания будут приходить с каждым новым уровнем. А такие навыки как «Первая помощь», «Баллистика» и «Артиллерия» объединены в «Искусство войны». Тут надо сказать и про «командира», он как в Heroes IV является героем поля боя, поначалу он хиленький и воюет не очень, но постепенно превращается в танк. Ну и геймплей, если раньше мы подходя к нейтральной шахте мы могли безбоязненно её присвоить, то теперь нас может атаковать отряд воров. Нейтральным монстрам может на помощь прийти отряд, иногда даже во главе с героем.

Требования для установки обновления:

Вам необходимы установленные ранее или HMM III The SoD (Shadow of Death) или HMM III Дыхание Смерти (от Буки). WoG можно установить на Heroes III Complete или Heroes Platinum edition (так как SoD входит в эти две версии). Автор данной статьи установил 3.58f поверх вышеуказанной 3.52.
Внимание! Установка WoG на RoE ( Restoration of Erathia ) или AB ( Armageddon Blade ) ни к чему хорошему не приведет и игра работать НЕ БУДЕТ.

Скачать патч WoG_Install3.58f.zip, размер 37,8 мб. от 01 ноября 2004 года .
ВНИМАНИЕ. После того как вы скачали архив, разархивируйте его в любую папку,
только не в папку Update c Героями (c:gamesheroesiiiwogUpdate) . А например C:temp. В находящейся там папке WoG_Install запустите Install.exe и следуйте инструкциям. Обязательно дождитесь окончания установки, которая может затянуться до получаса. После сообщения об успешном обновлении у вас в папке Пуск → Программы появится новая папка New Life of Heroes с ярлыками новой версии игры.
После рекомендую также закачать 358f_update от 14 декабря 2006 г 781 кб, в нем содержатся исправления графики интерфейса. Содержимое данного архива необходимо распаковать в c:gamesheroesiiiwogUpdate, после запустить h3wupd.exe, который находится в папке с уже установленными героями и следуйте инструкциям программы установки.
Поскольку патчи расщитаны на английскую версию игры Heroes of Might & Magic WoG после их установки придется установить русификаторы кампаний, биографий героев, интерфейса. Скачать русификатор 1,4 мб игры Герои Меча и Магии «Во Имя Богов», содержимое данного архива также необходимо распаковать в папку Update (c:gamesheroesiiiwogUpdate) и после запустить h3wupd.exe и следовать инструкциям установки.

HD мод для Героев 3

модуль дающий высокое разрешение в героях

HoMM 3 HD – это дополнение (мод) к игре Heroes of Might and Magic 3 (Герои Меча и Магии 3). Изначально HoMM 3 HD мод создавался для изменения оригинального разрешения игры 800×600 на большее, но сейчас его функциональность гораздо шире. HoMM 3 HD не затрагивает оригинальный геймплей игры, а улучшает функциональную часть интерфейса, делает игру более удобной, исправляет ряд багов оригинальной игры, увеличивает стабильность работы Героев III в Windows 7. Все расширения и исправления опциональны, каждый игрок сможет настроить игру согласно своим потребностям. Все имеющиеся незначительные изменения графики сделаны с сохранением оригинального стиля. Если по каким-либо причинам HD mod не запустился в окне, нажмите клавишу F4.

Что очень приятно так это функция «пригласить героя». В таверну вы можете позвать легендарного героя из кампаний. Например можно вызвать полуэльфа Джелу, который может арбалетчиков, тяжелых арбалетчиков, лесных и благородных эльфов до снайперов. Или, например колдун Дракон который улучшает монахов, фанатиков, а также магов и архимагов до чародеев. Поскольку эта функция немного изменяет правила доступна она только в режиме сценария.

Установка. Ейч Ди мод устанавливается в папку с установлеными героями меча и магии. У меня уставлены Герои 3 Тени Смерти в папку c:gamesheroesiiisod; Герои 3 Во имя Богов c:gamesheroesiiiwog. И этот мод я устанавливал и туда и туда, чтобы модернизировать обе игры.

На скриншотах видно что реальные изменния происходят только в окне карты мира, оно становится куда шире 19х18 квадратов, но несмотря на это заклинания «дверь измерений» и «затопить корабль» можно в пределах прямоугольника 19×18 игровых клеток, независимо от размера обозримой области карты – магического беcпредела не будет.

Недостаток: не показыается видео с заставок игры, но лично мне это безразлично. HoMM 3 HD полностью совместим: SoD, Complete, HotA – проверено лично в Windows 7×64 работает на ура. WoG, TE, WT, ERA – не весь функционал доступен, но в WoG у меня работет вполне удолетворительно.

Software optimization resources

This series of five manuals describes everything you need to know about optimizing code for x86 and x86-64 family microprocessors, including optimization advices for C++ and assembly language, details about the microarchitecture and instruction timings of most Intel, AMD and VIA processors, and details about different compilers and calling conventions.

Читать еще:  Apple выпустила MacOS Mojave: что нового, как установить, какие устройства поддерживаются

Operating systems covered: DOS, Windows, Linux, BSD, Mac OS X Intel based, 32 and 64 bits.

Note that these manuals are not for beginners.

1. Optimizing software in C++: An optimization guide for Windows, Linux and Mac platforms This is an optimization manual for advanced C++ programmers. Topics include: The choice of platform and operating system. Choice of compiler and framework. Finding performance bottlenecks. The efficiency of different C++ constructs. Multi-core systems. Parallelization with vector operations. CPU dispatching. Efficient container class templates. Etc.

File name: optimizing_cpp.pdf, size: 1221946, last modified: 2021-Aug-17.
Download.
2. Optimizing subroutines in assembly language: An optimization guide for x86 platforms This is an optimization manual for advanced assembly language programmers and compiler makers. Topics include: C++ instrinsic functions, inline assembly and stand-alone assembly. Linking optimized assembly subroutines into high level language programs. Making subroutine libraries compatible with multiple compilers and operating systems. Optimizing for speed or size. Memory access. Loops. Vector programming (XMM, YMM, SIMD). CPU-specific optimization and CPU dispatching.

File name: optimizing_assembly.pdf, size: 1507033, last modified: 2021-Jan-31.
Download.
3. The microarchitecture of Intel, AMD and VIA CPUs: An optimization guide for assembly programmers and compiler makers This manual contains details about the internal working of various microprocessors from Intel, AMD and VIA. Topics include: Out-of-order execution, register renaming, pipeline structure, execution unit organization and branch prediction algorithms for each type of microprocessor. Describes many details that cannot be found in manuals from microprocessor vendors or anywhere else. The information is based on my own research and measurements rather than on official sources. This information will be useful to programmers who want to make CPU-specific optimizations as well as to compiler makers and students of microarchitecture.

File name: microarchitecture.pdf, size: 1697054, last modified: 2021-Aug-17.
Download.
4. Instruction tables: Lists of instruction latencies, throughputs and micro-operation breakdowns for Intel, AMD and VIA CPUs Contains detailed lists of instruction latencies, execution unit throughputs, micro-operation breakdown and other details for all common application instructions of most microprocessors from Intel, AMD and VIA. Intended as an appendix to the preceding manuals. Available as pdf file and as spreadsheet (ods format).

File name: instruction_tables.pdf, size: 2084034, last modified: 2021-Aug-17.
Download.

File name: instruction_tables.ods, size: 519266, last modified: 2021-Aug-17.
Download.
5. Calling conventions for different C++ compilers and operating systems This document contains details about data representation, function calling conventions, register usage conventions, name mangling schemes, etc. for many different C++ compilers and operating systems. Discusses compatibilities and incompatibilities between different C++ compilers. Includes information that is not covered by the official Application Binary Interface standards (ABI’s). The information provided here is based on my own research and therefore descriptive rather than normative. Intended as a source of reference for programmers who want to make function libraries compatible with multiple compilers or operating systems and for makers of compilers and other development tools who want their tools to be compatible with existing tools.

File name: calling_conventions.pdf, size: 1070500, last modified: 2021-Jan-31.
Download.
All five manuals Download all the above manuals together in one zip file.

File name: optimization_manuals.zip, size: 6444848, last modified: 2021-Aug-17.
Download.

C++ vector class library

This is a collection of C++ classes, functions and operators that makes it easier to use the the vector instructions (Single Instruction Multiple Data instructions) of modern CPUs without using assembly language. Supports the SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2, FMA, XOP, and AVX512F/BW/DQ/VL instruction sets. Includes standard mathematical functions. Can compile for different instruction sets from the same source code.
Description and instructions.
Message board.
Source on Github.
Nice little instruction video by WhatsaCreel.

Object file converter

This utility can be used for converting object files between COFF/PE, OMF, ELF and Mach-O formats for all 32-bit and 64-bit x86 platforms. Can modify symbol names in object files. Can build, modify and convert function libraries across platforms. Can dump object files and executable files. Also includes a very good disassembler supporting the SSE4, AVX, AVX2, AVX512, FMA3, FMA4, XOP and Knights Corner instruction sets. Source code included (GPL). Manual.

File name: objconv.zip, size: 1131919, last modified: 2021-Aug-16.
Download.

This is a library of optimized subroutines coded in assembly language. The functions in this library can be called from C, C++ and other compiled high-level languages. Supports many different compilers under Windows, Linux, BSD and Mac OS X operating systems, 32 and 64 bits. This library contains faster versions of common C/C++ memory and string functions, fast functions for string search and string parsing, fast integer division and integer vector division, as well as several useful functions not found elsewhere.

The package contains library files in many different file formats, C++ header file and assembly language source code. Gnu general public license applies. Manual.

File name: asmlib.zip, size: 883583, last modified: 2018-Apr-25.
Download.

This is a proposal and discussion of how an ideal instruction set architecture can be constructed. The proposed instruction set combines the best from the RISC and CISC principles to produce a flexible, consistent, modular, orthogonal, scalable and expansible instruction set for high performance microprocessors and large vector processors.

The ForwardCom instruction set has variable-length vector registers and a special addressing mode that allows the software to automatically adapt to different microprocessors with different maximum vector lengths and make efficient loops through arrays regardless of whether the array size is divisible by the vector length. Standardization of the corresponding ecosystem of ABI standards, function libraries, compilers, etc. makes it possible to combine different programming languages in the same program.

Development tools and softcore are available.

Test programs for measuring clock cycles and performance monitoring

Test programs that I have used for my research. Can measure clock cycles and performance monitor counters such as cache misses, branch mispredictions, resource stalls etc. in a small piece of code in C, C++ or assembly. Can also set up performance monitor counters for reading inside another program. Supports Windows and Linux, 32 and 64 bit mode, multiple threads.

For experts only. Useful for analyzing small pieces of code but not for profiling a whole program.

File name: testp.zip, size: 958881, last modified: 2021-Apr-06.
Download.

Floating point exception tracking and NAN propagation

This article discusses the problems with floating point exceptions in systems that use out-of-order parallelism and SIMD parallelism. A solution based on NAN propagation is recommended.

File name: nan_propagation.pdf, size: 212063, last modified: 2020-Apr-27.
Download.

This is a program that can change the CPUID vendor string, family and model number on VIA Nano processors. See my blog for a discussion of the purpose of this program.

0 0 голоса
Рейтинг статьи
Ссылка на основную публикацию
ВсеИнструменты