Void59, HINT: BGI :-) Ну и что что под ДОС, ну и что что старее чем окаменелые какахи мамонта, зато полностью удовлетворяется условие "на с++ без сторонних библиотек? Не используя OpenGL и подобные инструменты" :-)
Nightmare1, оптимальный вариант IMHO чтобы не зависеть от компилятоа C/C++ это просто записать эту функцию в .asm файл, сделать из него .obj при помощи обычного ассемблерного транслятора, а после прилинковывать к своему проекту. Это съедят абсолютно все компиляторы C/C++ (вернее не они сами, а их линковщики, а им самим просто объявить данную функцию как extern).
Nightmare1, то есть как это записать в виде inline assembler для C/C++? Ну тут зависит уже от компилятора. У GCC синтаксис инлайна один, у Microsoft Visual C другой, у Borland (ныне Embarcadero) C++ Builder хоть и похож на Microsoft Visual C, но тоже немного другой, у Watcom C++ вообще не похожий ни на GCC, ни на Microsoft, ни на Embarcadero. Так что в данном случае однозначного ответа быть не может, всё компиляторно-зависимо в данном случае.
Алексей С., Я просто подумал что общее число в данном случае надо делить на один процент от всего. Как там с дробями и пропорциями дело обстоит -- честно скажу, забыл уже успешно за сорок лет когда в последний раз в школе математику проходил.
Максим, да, R-Studio платная. Я же сказал выше что с сайта берётся демо версия, которая имеет ограничение в 256 килобайт для восстанавливаемых файлов. Тут можно скачать ломанную, но довольно старую, 2013 года, версию 2.1.476, в то время как на сайте лежит 4.10.4043 от декабря прошлого кода. Но на сайте естественно без ключа и со всеми ограничениями.
Насчёт Recuva ничего не скажу, нге пользовался ни разу и даже не видел.
Максим, ddrescue не восстанавливает удалённые файлы, он просто помогает копировать файлы со сбойных участков диска. А R-Studio как раз восстанавливает удалённые файлы (по-моему там даже есть русский интерфейс, не смотрел никогда за ненадобностью), test-disk тоже умеет восстанавливать удалённые файлы, но это не GUI.