У меня есть устаревшее приложение, которое использует старый почтовый объект CDONTS, который я пытаюсь перенести на новый сервер, на котором работает 64-разрядная версия Windows 2003. Я устанавливал его около миллиона раз. другие (32-битные) экземпляры 2003 года без проблем, скопировав C: \ windows \ system32 \ cdonts.dll с существующего компьютера в ту же папку на новом сервере, а затем запустив:
regsvr32.exe C:\WINDOWS\system32\cdonts.dll
Однако когда я запускаю его на этом сервере, я получаю:
LoadLibrary("C:\WINDOWS\system32\cdonts.dll") failed - The specified module could not be found.
В предложении на форуме говорилось, что я должен явно запустить C: \ WINDOWS \ SysWOW64 \ regsvr32.exe, но это была та же ошибка.
Другие сообщения в Интернете предполагают, что эта ошибка иногда может означать, что версия dll слишком мала для этой версии Windows, но я не уверен, где взять более новую.
Есть ли способ заставить это работать без перекодирования?
Попробуйте поместить cdonts.dll в% windir% \ syswow64 \, затем запустите regsvr32.exe из \ syswow64 и посмотрите, сработает ли это для вас.
32-битные приложения видят \ system32 на самом деле как \ syswow64, а 64-битные приложения видят реальный \ system32.