Во-первых, я не программист на C ++ (но я учусь). Мне наконец-то удалось изменить и скомпилировать исходный код на C ++ с использованием Visual C ++ 2008 Express Edition. Я пытался получить тот же код, скомпилированный в полной версии Visual C ++ 2003, но безуспешно (я получаю множество ошибок, но безуспешно).
Проблема в том, что все работает нормально, используя RunDll32 для вызова DLL в Windows Vista, но когда я пытаюсь выполнить тот же вызов rundll32 в Windows 2000, я получаю следующую ошибку:
"Ошибка загрузки mysampledll.dll"
«Указанный модуль не найден.»
Конечно, я попытался установить полный путь, переместить файл и т. Д., Но не повезло. Я гарантирую, что файл существует и имеет правильные разрешения.
Возможно, я подумал, что что-то не так с манифестом, который компилируется вместе с DLL в Vista. Поэтому я удалил его с помощью редактора ресурсов, но затем я получаю ту же ошибку в Vista и Win2k. Вот манифест:
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
<security>
<requestedPrivileges>
<requestedExecutionLevel level="requireAdministrator" uiAccess="false"></requestedExecutionLevel>
</requestedPrivileges>
</security>
</trustInfo>
<dependency>
<dependentAssembly>
<assemblyIdentity type="win32" name="Microsoft.VC90.DebugCRT" version="9.0.21022.8" processorArchitecture="x86" publicKeyToken="1fc8b3b9a1e18e3b"></assemblyIdentity>
</dependentAssembly>
</dependency>
<dependency>
<dependentAssembly>
<assemblyIdentity type="win32" name="Microsoft.VC90.CRT" version="9.0.21022.8" processorArchitecture="x86" publicKeyToken="1fc8b3b9a1e18e3b"></assemblyIdentity>
</dependentAssembly>
</dependency>
</assembly>
Теперь я предполагаю, что проблема в том, что в Win2k не установлен Microsoft.VC90.CRT, но почему моя DLL имеет эту зависимость? В свойствах проекта я установил «Общеязыковая поддержка времени выполнения» на «Нет общеязыковой поддержки времени выполнения», так почему же он все еще требует CLR? Есть ли способ изменить манифест, чтобы использовать более старую среду выполнения Visual C ++, которая доступна по умолчанию в Win2k? Извините за мое невежество в этих вопросах и заранее благодарю за любую помощь.