我创建了两个可以从IDE编译并运行的MFC应用程序。但是,假设第二个应用程序不是使用App向导创建的,而是我复制了第一个应用程序文件夹,然后开始重命名源文件和相关信息,如字符串表,版本等,以便第二个应用程序不同且独特方面申请#1。这两个应用程序都是SDI类型,我遇到的问题是,当我运行安装程序来安装第二个应用程序时,安装会中止,因为它检测到已经安装的第一个(我猜它是一个Windows注册表项)。
我去了app.h,app.cpp,appdoc.h,appdoc.cpp,文件和检查过的代码行,如:
SetAppID(_T( “SVGovCfg.AppID.NoVersion”));确保两个应用程序之间没有重复,但看起来仍然缺少某些东西。
非常欢迎任何帮助。
答案 0 :(得分:0)
检查您的应用程序是否在OnInitInstance()中调用SetRegistryKey()。应用程序之间的密钥需要不同。也许它没有在你的应用程序中调用,并且某些默认值来自某些东西 - 看看MFC源代码,看看它是如何处理的。
答案 1 :(得分: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
答案 2 :(得分:0)
这似乎与应用程序本身无关。当您安装应用程序时,会检测到设置ID的设置程序。您需要修改安装程序以区分这两者。