Вам нужно будет имитировать каждый экспорт, который использует любой другой клиент, вам не нужно имитировать «мертвый» экспорт, который никто не использует. Вы должны сохранить порядковые номера, только если другие клиенты связаны, используя порядковый номер вместо имени экспорта (что довольно редко).
Есть кое-что, что вы должны иметь в виду: если dll содержит классы C ++ и не использует extern"C", то вам нужно поддерживать двоичную сопоставимость, то есть классы в замене DLL должен иметь те же поля в том же порядке, что и исходные классы. Если вы используете интерфейсы, вам нужно сохранить vtable с одинаковыми аргументами для каждого метода.