从XP到VISTA下程序兼容性问题
来源:互联网 发布:linux查看用户名密码 编辑:程序博客网 时间:2024/05/29 05:58
因为公司项目需要,这两天要把xp下面的项目移植到VISTA下面。
问题:
本来在xp下面非常正常的程序到了vista下面运行的时候,却没有弹出任何界面。去任务管理器看却存在程序的进程,只是内存很小,像僵尸进程一样。郁闷中~~~,同事以前解决过这种问题是因为某个dll加载不上,如是检查自己的dll发现都能加载上去。怀疑是使用了系统的某些API在vista下不兼容,没办法把程序从头开始一步步移植到vista下面看走到哪一步会出现没有界面的情况。最终,发现果然还是自己的dll惹的祸,虽然加载上去了但就因此没有了程序的界面。修改dll后问题解决~~~
但第二个问题出现,程序中对注册表的操作居然失败。网上找了很久原因,发现原来是vista下的UAC(用户账户管理)问题。因为注册表操作可能会影响到系统的安全,所以vista下面要进行注册表等涉及到系统安全的行为必须要程序以管理员模式运行才可以(即使你是管理员,也要右键-》管理员模式运行)。
解决方法:
(来源:vista之家)
对于VC程序员来说,这个过程其实并不复杂,大家看下下面的代码:
///////// 本行以下为代码,不含本行
<?xml version=”1.0″ encoding=”UTF-8″ standalone=”yes”?>
<assembly xmlns=”urn:schemas-microsoft-com:asm.v1″ manifestVersion=”1.0″>
<assemblyIdentity
version=”1.0.0.0″
processorArchitecture=”X86″
name=”test.exe.manifest”
type=”win32″
/>
<trustInfo xmlns=”urn:schemas-microsoft-com:asm.v3″>
<security>
<requestedPrivileges>
<requestedExecutionLevel level=”requireAdministrator” uiAccess=”false”/>
</requestedPrivileges>
</security>
</trustInfo>
</assembly>
///////// 本行以上位代码,不含本行
该代码添加到VC资源中即可, 添加方式:
添加一个“custom”资源,”resource type”填24,把资源ID改为1
如果只有一个可执行文件,也可以通过以下方法添加:
mt.exe -manifest e4nmgr.exe.manifest -outputresource:e4nmgr.exe;1
这样,就可以在C++编译出来的程序里面实现申请管理员权限那个功能了。
------------------------------------------------------------------------
注意以上xml复制下来如果有中文标点符号要改成英文的标点符号,要不会提示 "并行配置错误",完成后点击vs03的调试会
弹出UAC验证确认的盾牌。看你生成的exe文件会发现图标旁边多了影响“盾牌标志”
问题3:在vs03里面调试程序却没有界面了,无法调试。
解决方法:
找到vs03的主程序,右键--》兼容性---》以管理员模式运行。OK,可以正确调试程序了。
-----------------------------------------------------------
总结:xp的程序要运行在vista下面如果出现什么问题。直接想到UAC的问题就可以(右键-》兼容性-》以管理员身份运行)。(*^__^*) 嘻嘻……,第一次写博客,有什么不足别扔臭鸡蛋哦,好的就无所谓~~!
- 从XP到VISTA下程序兼容性问题
- 通过修改程序解决Vista/Win7/Win8下应用程序兼容性问题
- 从XP升级到Vista创建的临时文件夹含义
- vista 下安装 xp
- Vista下VC6.0的安装 兼容性问题
- GTK+程序跨平台移植:把【GTK弹球小游戏"uunubt"!】从ubuntu10.10移植到Windows XP下。
- 如何移植32位C#工程到64位的XP或者VISTA下?
- 别被忽悠 XP的技巧到Vista下未必就好用
- 通过修改manifest解决Vista/Win7/Win8下应用程序兼容性问题
- 在vista操作下安装XP系统
- Vista下安装Ghost XP方法
- Vista和XP双系统下启动问题
- 与彭爱华(盆盆)、刘晖在线讨论“从Windows XP升级到Windows Vista您准备好了吗?”
- “从XP 到Vista 您准备好了吗?”聊天记录——希望对没有参加活动的读者有所帮助!
- vista+xp
- vista和SQLsever兼容性问题
- 超强模仿:让XP从“开始”就像Vista一样
- Windows 8下程序兼容性问题解决
- Javascript杂记
- 经济跌倒,银行吃饱
- 适当方式大幅
- 墨西哥城可能因猪流感“关闭”
- VC++ 设备上下文的理解
- 从XP到VISTA下程序兼容性问题
- ajax处理xml返回的文件
- ORACLE出现"关闭的连接"错误
- DBSchema
- 配置Spring数据源
- April 1st Wednesday (四月 一日 水曜日)
- April 2nd Tuesday (四月 二日 木曜日)
- April 3th Friday (四月 三日 金曜日)
- PHP的学习历程