在制作几个程序之后,有些程序运行问题总想不明白,希望各位一起讨论提供一下思路。
本人的程序大部分是用VS2005开发的,在WIN XP和VISTA下运行好像没有什么问题。好了,到传给使用WIN7的朋友们测试,问题就来了。部分WIN 7系统(旗舰版)可以正常运行,部分系统(也是旗舰版)会弹出“XX程序 已经停止运行”以及什么“联机查找解决方案”之类的提示框,WIN 7的家庭版好像问题更加严重了,有部分甚至双击没有反应,但是又不可以否认,部分的家庭版也是正常使用。总之什么情况都有。上网搜索一下,类似的情况也大有雷同。我也赞同部分观点,例如说调用了API的问题或者说权限的问题。API问题,我只是调用了[DllImport("kernel32")]这种,但是我发现,全部的WIN7系统system32也有这个DLL文件,甚至把软件的所以DLL都复制进system32,一样不行。好了,说是权限问题,我试过以管理员身份运行、兼容XP程序以及生成manifest文件提权,甚至是连账号管理的UAC也设置“不通知”,也解决不了。其它还有说什么.net framework问题的,试过都不行。总而言之,程序是否兼容WIN7,我感觉是听天由命,可以运行的,一直都可以运行;一开始不能运行的,做什么都不能运行。所以恳请各位高手,给点思路小弟。不胜感激。或者有解决方案的,不妨分享一下。让大家学习学习

解决方案 »

  1.   

    很多软件在win7上安装时都会出现不兼容的问题。像我的的系统就是win7旗舰版的,在装vs2005时就存在兼容性问题。我也不明白是怎么回事。起初认为是win7是新出的系统,可能在某些方面还未完善,导致诸多的软件在安装时就会出现不兼容等问题。应该是系统是本上的问题吧。需要改进的地方还有很多呢!
      

  2.   

    试过以管理员身份启动了,也不行。
    我有个想法,不知道和盘符的格式有没有关系,例如NTFS或者FAT之类的
    因为我里面有个程序,是获取硬盘的序列号作为机器码的。不过不是启动就触发的,而是点击按钮才触发
      

  3.   

    Win7上不管是运行以前发布的 Web网站 C++软件 C#软件都是没有任何问题的..
      

  4.   

    win7有64位的版本,而.net的默认编译的cpu类型为anycpu,即exe本身是与系统无关的,当程序第一次运行的时候,由clr生成最终的机器码,当在64位系统上运行的时候,会生成64位的机器码,反之则生成32位的机器码
    如果在程序中引用了第三方的activex控件,而这个控件式32位的,那么如果编译成anycpu方式后在64位系统上运行就会出现错误,解决方法为将编译cpu设置为x86即可,但这样你的程序就被强制成32位
      

  5.   

    win7有64位的版本,而.net的默认编译的cpu类型为anycpu,即exe本身是与系统无关的,当程序第一次运行的时候,由clr生成最终的机器码,当在64位系统上运行的时候,会生成64位的机器码,反之则生成32位的机器码
    如果在程序中引用了第三方的activex控件,而这个控件式32位的,那么如果编译成anycpu方式后在64位系统上运行就会出现错误,解决方法为将编译cpu设置为x86即可,但这样你的程序就被强制成32位