Регистрация C ++ DLL на 64-битной машине - PullRequest
0 голосов
/ 03 октября 2018

У меня есть C ++ DLL, которую я написал, которая не может зарегистрироваться на 64-битной машине.Обратите внимание на 32-разрядную версию DLL-регистров на 32-разрядной машине.

Мы собираем DLL на 64-битном компьютере под управлением Windows 7, используя Visual Studio 2010 в режиме выпуска и нацеливаемся на платформу x64.Я хочу установить DLL на 64-битный компьютер с Windows 10 (место назначения).На целевом компьютере установлен перенаправитель VS 2010 для 64-разрядной версии.Когда я пытаюсь зарегистрировать программу, используя:

C: \ windows \ system32 \ regsvr32.exe

Сбой и говорит, что программа "может быть несовместима с этой версией Windows, которую выПроверьте, совместим ли модуль с x86 (32-битной) или x64 (64-битной) версией regsvr32.exe ".

Я использую программу под названием Зависимости, которая пытается выяснить, чтозависимости, которые требует DLL.Зависимости говорят, что моя DLL требует ATL100.dll.Тем не менее, он устанавливается Redist VS 2010 и действительно находится в C: \ windows \ system32.Сама DLL не зависит от каких-либо сторонних программ.

У кого-нибудь есть идеи, что искать дальше, чтобы зарегистрировать этот файл?

1 Ответ

0 голосов
/ 03 октября 2018

Я понял это.Мне пришлось удалить 64-разрядную и 32-разрядную версию Redist VS 2010.Удалите ATL100.dll из каталогов C: \ windows \ system32 и syswow64 и перезагрузите компьютер.После перезагрузки я переустановил оба установщика перенаправления.Затем я смог зарегистрировать файл из административной командной строки.

Может быть, что-то, что мы установили, установило файл ATL100.dll, и когда я установил 64-разрядное перенаправление, он не переписал ATL100.dll.Устаревшая версия установлена.

...