Windows 7 对应用程序进行编码以使其在windows 7上正常运行。。。?

Windows 7 对应用程序进行编码以使其在windows 7上正常运行。。。?,windows-7,Windows 7,我有一个闪存驱动器,它有一个代码是VC++2008编写的应用程序,该应用程序在xp中运行良好,但当我将该驱动器插入windows 7机器时,问题出现了,它无法正常运行。有没有办法通过编写代码使其与windows兼容 我不想在windows 7中设置兼容性选项卡来运行该程序 我想在程序中对其进行编码,更像是一个补丁。您可能需要向应用程序添加一个,以请求适当的安全权限,使应用程序能够执行它需要执行的操作 如果需要提升权限,这可能会导致向用户显示UAC提示,但是您的代码将被允许执行Windows 7当

我有一个闪存驱动器,它有一个代码是VC++2008编写的应用程序,该应用程序在xp中运行良好,但当我将该驱动器插入windows 7机器时,问题出现了,它无法正常运行。有没有办法通过编写代码使其与windows兼容

我不想在windows 7中设置兼容性选项卡来运行该程序


我想在程序中对其进行编码,更像是一个补丁。

您可能需要向应用程序添加一个,以请求适当的安全权限,使应用程序能够执行它需要执行的操作

如果需要提升权限,这可能会导致向用户显示UAC提示,但是您的代码将被允许执行Windows 7当前阻止的任何操作。

您可以使用,它将准确地告诉您在Windows XP模式下运行应用程序时,您的代码使用了哪些Windows XP兼容垫片


您只需运行应用程序并禁用各种垫片,直到代码再次出现错误行为。您禁用的最后一个垫片是导致错误行为的原因。然后,您可以研究每个垫片的确切后果,以及您的代码将要做什么来修复迫使其在Windows XP兼容模式下运行的错误。

如果您知道问题存在并且知道UAC/etc…/Win7上的清单无法解决您的问题,而且它与32/64位问题无关,请尝试其他方法

我想你知道Windows 7上的应用程序出了什么问题。如果您不确定具体位置,至少应该知道问题所在的位置(在哪个逻辑块中)(例如IO块、磁盘读/写块、Gui等)

现在继续使用调试器。希望你的程序不会太大,以至于你无法对其进行分析并找到问题的根源。你可能会遇到问题,因为某些函数工作不正常或类似的情况


然后,我想,你可以重新考虑/重新存储你的代码,并改变它在两个平台上的工作方式。如果没有通用的解决方案,请使用
#ifdef
s来确定你当前的平台(实际上是最坏的情况,因为不同的windows版本必须有不同的二进制文件)。

它以什么方式不可用“正常运行”?在大多数情况下,在XP上运行的任何东西都应该在Windows 7上运行,但你必须更具体。Win 7是64位版本,而XP是32位版本吗?@rajivpradeep:什么是“内存分区”"?如果您指的是逻辑分区,那么一旦您移动到Windows 7,您的应用程序很可能需要请求管理权限。不允许非管理应用程序直接访问物理磁盘介质。@rajivpradeep:仅仅因为代码在Windows XP上正常工作并不意味着代码是正确的t、 如果您依赖于在两个操作系统之间更改的实现细节,那么当您更改平台时,代码中会出现错误。依赖未记录的行为是一个错误,但除非您更改平台,否则不会出现错误。@rajivpradeep:这里有两个答案,都建议采取合理的行动。Jason如果管理权限是唯一的问题,Williams的回答将解决这个问题。如果您依赖于任何其他Windows XP兼容性,我的回答将帮助您。+1表示清单是问题所在,-1表示不指向Visual Studio项目属性中的设置,该设置在不需要任何人编写的情况下更改此设置一个显式清单:总数:0。@ RajvavPosith:项目属性>链接器>清单文件> UAC执行级别。将其改为“AddieRealService”抱歉,孩子们决定我需要一个早晨,而C++标签没有影响我的大脑:-)RajvPaSt深处:那么您需要使用MACT(见我的答案)要确切说明没有Windows XP虚拟化应用程序失败的原因。您仍然需要Williams先生的回答来请求管理权限,但您需要解决代码本身的兼容性问题。希望它是像“VersionLie”垫片这样简单的东西。