Есть ли возможность скомпилировать программу, так чтобы её можно было запускать вне зависимости от того где она находится в памяти! Таблица релокаций должна отсутствовать (именно отсутствовать)! А вообще ещё хотел перенести после старта проги саму себя в другое место памяти и запустить! Посоветуйте! Про то что надо это или не надо лучше не говорите! Просто помогите! наставте! Спасибо!
Напиши программу на одних лишь относительных переходах - и будет тебе счастье. Я как-то лет 12 назад на Спектруме такую вымутил
vovka По-моему для С++ достаточно: не использовать глобальные/статические данные не использовать виртуальные ф-ции, виртуальные базовые классы, RTTI, EH не использовать табл. импорта (т.е. адреса АПИ получать явно) поместить весь код в одну секцию.
Quantum Может. Абсолютны только косвенные переходы (не считая, конечно, прямых межсегментных). Поэтому и нельзя использовать неявные косвенные вызовы т.е. виртуальные ф-ции и таблицу импорта. Вообще говоря есть и другие источники косвенных вызовов. Например компилятор может оптимизировать switch сведя его к вызову по таблице.