У меня проблемы с регистрацией и использованием динамической библиотеки под Windows 7 x64, 64-битная версия dll компилируется, но журнал компилятора выводит:
Error MSB3073: The command "RegSvr32 /S "...\x64\Debug\xxxxx.dll" exited with code 3.
Но когда я создаю 32-разрядную версию dll, журнал компилятора выводит команду RegSvr32, выполненную успешно.
Я уже установил Linker >> General >> Register Output
на No
в конфигурациях сборки x86 и x64.
Я пробовал запускать 64-битную и 32-битную версию RegSvr32 (без тихого режима) с 64-битной dll, но она выдает следующую ошибку:
The module "xxxxx.dll" failed to load. Make sure the binary is stored at the specified path or debug it to check for problems with the binary or dependent .DLL files. The specified module could not be found.
Я проверил это с помощью обходчика зависимостей, и он сообщил, что отсутствует более 100 dll, поэтому я не могу их здесь показать. Некоторые из них:
API-MS-WIN-CORE-COM-L1-1-1.DLL
API-MS-WIN-CORE-DATETIME-L1-1-1.DLL
API-MS-WIN-CORE-DEBUG-L1-1-1.DLL
API-MS-WIN-CORE-ERRORHANDLING-L1-1-1.DLL
API-MS-WIN-CORE-FILE-L1-2-1.DLL
...
WLANUTIL.DLL
WLDAP32.DLL
WTSAPI32.DLL
XMLLITE.DLL
Зависимость Walker с открытой dll:
Мне интересно, по какой причине только 64-битная версия dll не может зарегистрироваться с помощью RegSvr32.
Любая помощь очень ценится для решения этой проблемы.
ОБНОВЛЕНИЕ 1
Попытка запустить приложение с этой динамической библиотекой приводит к следующей ошибке (как в 32-разрядной, так и в 64-разрядной версиях):
The program can't start because api-ms-win-core-errorhandling-l1-1-1.dll is missing from your computer. Try reinstalling the program to fix this problem.
Все распространяемые пакеты, которые я установил на данный момент:
Есть ли какие-либо распространяемые визуальные С++, которые я должен установить, чтобы решить эту проблему?
ОБНОВЛЕНИЕ 2
Я нашел дополнительную информацию о api-ms-win-core-errorhandling-l1-1-1.dll
здесь и попытался связать WindowsApp.lib
с этой динамической библиотекой, но это даже не решило проблему.
ОБНОВЛЕНИЕ 3
Я запустил средство проверки системных файлов, и оно дало мне следующий вывод, как я и думал:
Windows Resource Protection did not find any integrity violations.