0

我创建了两个 MFC 应用程序,它们可以从 IDE 编译和运行。但是,假设第二个应用程序不是使用应用程序向导创建的,而是我复制了第一个应用程序文件夹,然后开始重命名源文件和相关信息,例如字符串表、版本等,以便第二个应用程序与众不同且独一无二到应用程序#1。这两个应用程序都是 SDI 类型,我遇到的问题是,当我运行安装程序以安装第二个应用程序时,安装中止,因为它检测到第一个已安装(我猜它是 Windows 注册表项)。

我去了 app.h、app.cpp、appdoc.h、appdoc.cpp、文件并检查了以下代码行:

SetAppID(_T("SVGovCfg.AppID.NoVersion")); 确保两个应用程序之间没有重复,但是看起来仍然缺少一些东西。

非常欢迎任何帮助。

4

3 回答 3

0

使用以下正则表达式在文件中搜索重复的 UUID:

[0-9a-fA-F]^8-[0-9a-fA-F]^4-[0-9a-fA-F]^4-[0-9a-fA-F]^4-[0-9a-fA-F]^12
于 2012-04-10T14:41:59.540 回答
0

检查您的应用程序是否在 OnInitInstance() 中调用 SetRegistryKey()。该密钥需要在应用程序之间有所不同。也许它没有在您的应用程序中调用,并且某些默认值是从某些东西派生的 - 查看 MFC 源代码以了解它是如何处理的。

于 2012-04-10T13:20:59.763 回答
0

这似乎与应用程序本身无关。当您安装应用程序时,安装程​​序会检测安装 ID。您需要修改安装程序以区分两者。

于 2012-04-11T05:06:37.233 回答