У нас есть DLL, которая создается в доме и для которой у нас есть связанный статический LIB заглушек.
У нас также есть EXE, который использует эту DLL, используя простой метод статической привязки к DLL файлу LIB (т.е. не вручную используя LoadLibrary).
При развертывании EXE мы хотели бы, чтобы имя файла DLL было изменено по причинам обфускации (по запросу клиента).
Как мы можем это сделать, чтобы наш EXE файл по-прежнему обнаруживал DLL автоматически?
Я попытался переименовать файлы DLL и LIB (после того, как они были построены с их обычным именем), а затем изменив параметры проекта EXE, чтобы связать их с переименованной LIB. Это не удается во время выполнения, так как я думаю, что имя DLL выпекается в файле LIB, а не просто догадывается компоновщиком, заменяющим ".lib" на ".dll".
В общем, мы не хотим применять эту обфускацию ко всем видам DLL, поэтому мы хотим сохранить текущие выходные файлы проекта DLL.
Я надеюсь, что будет метод, по которому мы можем отредактировать DLL файл DLL, и заменим hardcoded имя DLL файла на что-то еще. В этом случае это можно было бы сделать полностью в рамках проекта EXE (возможно, в качестве этапа предварительной сборки).
Обновление. Я считаю, что Delay Loading не работает, так как моя DLL содержит экспортированные классы С++. См. в этой статье.
Есть ли альтернативы?