我构建了一个在 Windows 2003 上运行的应用程序,它是一个旧式 MFC 应用程序。今天我需要在 Windows 2008 R2 64 系统上安装该应用程序。安装过程中出现故障,应用程序无法运行。
应用程序使用 VisualStudio2005 构建,并使用 COM 对象。MSI 注册对象但失败,错误代码:HRESULT -2147010895。
知道为什么 COM 注册失败吗?
我尝试安装“Microsoft Visual C++ 2005 Redistributable Package (x86)”,但没有用。我尝试在安装后使用 regsvr32 注册 COM 对象,但遗憾的是没有用。我尝试在 Windows 2008 R2 32 上安装该应用程序,它运行正常。
我对 64 位系统还很陌生,因此如果能提供任何帮助我将非常感激。
蒂亚奥利奇
答案1
这个主题与 stackoverflow.com 问题更相关,但我找到了解决方案,因此我将在此分享。该应用程序最初是为 Windows NT 开发的,定义 WINVER 和 _WIN32_WINDOWS 设置为 0x0400(Windows NT)。为了解决这个问题,我“简单地”将两个定义更改为 Windows XP(0x0501),然后构建它,就这样。
对于我来说这非常神奇,因为我不了解其中的机制,但只要它有效就行。
希望它有帮助。olich