此软件可在win7 32位64位双系统和64位系统正常运行,有什么办法可解决?谢谢

在 SegmentFault,学习技能、解决问题
每个月,我们帮助 1000 万的开发者解决各种各样的技术问题。并助力他们在技术能力、职业生涯、影响力上获得提升。
问题对人有帮助,内容完整,我也想知道答案
问题没有实际价值,缺少关键内容,没有改进余地
被踩了好几下了 : )
红警2在win7 64位下玩不了,兼容模式等等都不行,屏幕黑屏,求一个沙盒或者模拟器,可以在win7 64位系统中运行 xp 32位软件,谢谢
这个问题已被关闭,原因:非技术提问的讨论型问题
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
我只是觉得虚拟机什么的不是问题,红警2在win7 64位玩不了, 这事靠谱吗? ∑(っ °Д °;)っ
好吧, 其实我真正想要吐糟的是, 你来这问怎么玩红警( `д′)
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
你来这问怎么玩红警?
红警2在Win7 64位下可以运行,甚至都不需要开兼容性选项,给管理员权限即可。
分享到微博?
关闭理由:
删除理由:
忽略理由:
推广(招聘、广告、SEO 等)方面的内容
与已有问题重复(请编辑该提问指向已有相同问题)
答非所问,不符合答题要求
宜作评论而非答案
带有人身攻击、辱骂、仇恨等违反条款的内容
无法获得确切结果的问题
非开发直接相关的问题
非技术提问的讨论型问题
其他原因(请补充说明)
我要该,理由是:
在 SegmentFault,学习技能、解决问题
每个月,我们帮助 1000 万的开发者解决各种各样的技术问题。并助力他们在技术能力、职业生涯、影响力上获得提升。用了七八年电脑,你可知道Win7系统32位与64位的区别?用了七八年电脑,你可知道Win7系统32位与64位的区别?韩博士百家号有些用户电脑是8G内存,但是电脑只显示的一半不到的内存。这不就让多余的内存显得没用了吗?造成这个原因是跟电脑的操作系统位数有关!今天就以这个问题详细做出32位与64位到底有什么区别!如果你电脑的CPU是双核以上,那肯定支持64位操作系统。如果你的电脑内存大于4G,那就要用64位的系统了,这是因为无论是32位的Windows 7还是Vista,最大都只能支持3.25G的内存。而64位的windows最大将支持128G的内存。32位系统和64位系统的区别有以下四点:一、CPU要求不同:CPU也有32位和64位之分,32位CPU只能安装32位系统,而64位CPU即可安装32位系统也可以安装64位系统二:运算速度不同:64位CPU的指令集可以运行64位数据指令,比32位CPU提高了一倍(需要64位软件支持)三:寻址能力不同:64位系统可以支持多达128 GB的内存和多达16 TB的虚拟内存,而32位CPU和操作系统最大只可支持4G内存(实际只有3.25G左右)。四:软件兼容性不同:64位系统比32位系统的软件少,主要是64位系统推出的时间不长,所以64位系统的兼容性不如32位,虽然可以兼容32位软件,但是部分32位的软件在64位系统无法运行,但是目前的Win7 64位系统兼容性好了很多。以现在来说,Windows 32位和64位系统的区别目前主要就两条1、64位系统可以支持超过4G的内存2、64位兼容性不如32位的系统PS:更多更详细的装机知识和教程请关注:韩博士。本文仅代表作者观点,不代表百度立场。系作者授权百家号发表,未经许可不得转载。韩博士百家号最近更新:简介:专注电脑系统重装知识,分享实用经验作者最新文章相关文章如何在32位系统下安装64位Windows7系统
互联网 & 12-04 11:26:48 & 作者:佚名 &
32位系统下无法安装64位Windows7系统,这个问题相信有很多的朋友都在问吧,在接下来的文章中推荐个不错的方法可以在32位系统下安装64位系统,需要的朋友可以参考下
  在论坛看到很多网友提问说32位系统下无法安装64位Windows7系统,这里推荐一个很简单的方法来在32位系统下安装64位系统。
  32位系统可以是任意,比如XP,Vista,Windows7的32位。
  64位系统同样可以是任意。
  安装方法就是我们一直推荐的NT6安装,安装前请先检验文件的MD5值。
  如今,估计只有用XP的才用GHOST版系统了吧?对于windows7与windows8我想大多数都是用原版了,不管怎么说官方的还是最干净最放心的,更何况安装速度也不慢了。
  而32位与64位,32位系统不能运行64位的程序,但是64位可以兼容32位的程序,这是我首次安装64位系统才知道的。因为以前并没有用超过4G内存的电脑,现在公司的电脑是6G了,总算可以升级到64位了,下载原版windows8企业版之后,像平常安装一样运行,确发现原方法失效了!
  是的,硬盘安装是不行了,那就只能用U盘安装了,除了用U盘安装外,还有一个叫NT6的工具也是很强大的,先从U盘安装说起。
  用U盘系统安装原版windows8
下载杏雨梨云Win8一键安装环境
  因为一直用杏雨梨云的系统,所以安装原版ISO格式的系统也是用杏雨梨云的,下载后安装方法与我上次写的应该是功能最强大的U盘系统:杏雨梨云USB维护系统 一样,只是图片修改不了。因为安装程序是采用的杏雨梨云USB维护系统的,未单独编写,菜单背景文字等自定义部分在这里无效,无需作选择。如此这般进入U盘界面就是这样
  第一个选项,文字上写了,叫你把ISO镜像改名为&NT6.iso&,记得是iso,不要改成苹果的ios了...我朋友就这么干过...改名好后放到U盘的根目录,然后这里选择这个选项就可以了。
  但是会弹出一些选项是英文的,如果是win7的镜像,那么会要你选择家庭版还是旗舰版之类的,一般我们用系统都是用最高版本的,所以这里是选择最下面的旗舰版英文,如果你的是家庭版,选择第一个,有个home的单词在里面....我没试过乱选会怎样。win8也是一样选择版本,然后选择安装到哪个盘,看着弄就行了。这里完全后99%是一路安装到桌面的。
  是的,为什么是99%?因为系统这玩意,很多状况不是你所能预料的,比如,我先装了XP,再装了WIN7,在32位WIN7的基础上安装64位WIN8,用这方法就失效了!因为引导不了....引导程序被我弄得很蛋疼了,当然,这种机率很小,真的很小....
  第二个选项是安装wim系统,因为不常用,我也没用过,这里不解释..
  第三个选项是安装我们熟悉的GHO格式系统了,GHOST系统在这里也改名图上所写的&system.gho&,也是一路到桌面...注意如果下载的GHOST系统是ISO格式,记得把里面的GHO文件提取出来用。
  硬盘分区那些,文件浏览比较方便,这里就不说了,唯一遗憾的是不自带PE.....感觉有时候还是PE比较爽点。
  用U盘装原版系统大概就这样了,虽然U盘装原版系统的程序很多,但是我只用过这一个,谁叫用杏雨梨云用多了呢。
  用NT6 HDD Installer安装原版系统
  如果没U盘肿么办?那就要用过强大的NT6 了,NT6我一直没用,因为用不着....如果不是因为用U盘安装系统后引导不了我真不用。谁叫原版系统是可以直接解压后安装的呢
  前提:把原版系统ISO解压到某个盘(当然是C盘之外,呃,如果你是要安装到D盘的话,当然不要解压到D盘了)的根目录。
  这是WIN7原版解压到根目录之后,记得阿,我的是F盘的根目录,不是根目录的某个文件夹里面!不然检测不到的。
  这点很不爽,但是没办法阿,要装系统....记得阿,是根目录,根目录阿!现在的压缩软件都可以解压ISO文件了,如果你的不能解压,好吧,去下载个国产压缩软件,都行的....
下载NT6 HDD Installer汉化绿色版
  打开后会叫你安装,按步骤来就行了。win8 64位NT6也完美运行...
  这里按数字1,就会安装完成,然后重启的时候在操作系统选择那里选择NT6进去就行了,这个比较简单。
  缺点是:如果开始进不了系统,那这方法完全无效,因为首先要安装....貌似我试过在PE系统没法安装,也许是我没找到PE版本的NT6?当然,如果你开始就安装有NT6,那就进不了系统也好办了。如果开始系统就损坏了,那就只能用U盘系统安装了。
  直接解压后安装原版系统
  这是最简单的,也是我一直在用的,唯一缺点就是在32位不能装64位系统....当然前提是你原来的系统没损坏。
  注意:是解压ISO文件后打开sources文件里面的setup.exe!!!!
  不是上一级的setup.exe,如果是打开ISO文件目录下的setup.exe,那你永远安装失败......
  打开后,更新就选择不更新了,升级还是自定义那一步的话,一般是自定义,不要啥升级的。
  接下来就简单了,一直下一步....
大家感兴趣的内容
12345678910
最近更新的内容查看: 14020|回复: 13
以前在WIN7 32位系统上做的表格,换装WIN8 64位系统后VBA 部分不运行
阅读权限30
在线时间 小时
换系统后,代码大部分代码不能正常运行,有的报错,有的直接跳到VBE窗口,主要报错有:& & 若要在64位系统上使用,则必须更新此项目中的代码,请检查并更新DECLARE语句,然后用PTRSAFE属性标记它们。& &请高人指教。
阅读权限30
在线时间 小时
居然没人解答,再顶起来看看
阅读权限20
在线时间 小时
关键是WIN8系统发布了吗?好多人没有见过
阅读权限100
在线时间 小时
& & & & & & & &
32 位和 64 位版本的 Office 2010 之间的兼容性
Office 2010
摘要:针对处理大量数据的客户,Microsoft 推出了 64 位版本的 Microsoft Office 2010。本文讨论有关 32 位版本与新的 64 位版本和旧的 32 位 Office 应用程序之间兼容性的问题,并提供了相应的解决方案。(12 个打印页)
Microsoft 图标 Microsoft Corporation 的 Frank Rice
2009 年 11 月
适用范围:Microsoft Office 2010
& & 介绍 32 位和 64 位版本的 Microsoft Office 2010
& & 将 32 位系统与 64 位系统进行比较
& & 介绍 VBA 7 基本代码
& & ActiveX 控件和 COM 加载项兼容性
& & 应用程序编程接口兼容性
& & 使用条件编译属性
& & 其他资源
介绍 32 位和 64 位版本的 Microsoft Office 2010
Microsoft Office 2010 system 同时具有 32 位和 64 位版本。64 位版本使您能够处理更大的数据集。如果要在 Microsoft Excel 2010 中处理大量数字,则尤其需要使用此版本。
随着新的 64 位版本 Microsoft Office 2010 的引入,Microsoft 发布了称为 Microsoft Visual Basic for Applications 7.0 (VBA 7) 的新版本的 Microsoft Visual Basic for Applications (VBA) 以同时处理 32 位和 64 位应用程序。需要特别注意的是,本文中介绍的更改只适用于 64 位版本的 Microsoft Office 2010。如果使用的是 32 位版本的 Office 2010,则可以不加修改地使用以前版本的 Microsoft Office 中内置的解决方案。
Ee691831.note(zh-cn,office.14).gif注释:
在安装 Office 2010 时,默认安装的是 32 位版本,即使在 64 位系统上也是如此。您必须明确 选择 Office 2010 64 位版本安装选项。
在 VBA 7 中,必须更新现有 Windows 应用程序编程接口 (API) 语句(Declare 语句)才能处理 64 位版本。另外,还必须更新这些语句使用的用户定义类型中的地址指针和显示窗口句柄。本文将详细讨论这一点以及 32 位和 64 位版本的 Office 2010 之间的兼容性问题,并提供建议的解决方案。
将 32 位系统与 64 位系统进行比较
使用 64 位版本的 Office 2010 构建的应用程序可以引用更大的地址空间,因此提供了使用比以往更多的物理内存的机会,从而有可能减少将数据移入和移出物理内存所需的开销。
除了引用应用程序用于存储数据或存储编程指令的物理内存中的特定位置(又称为指针)外,还可以使用地址来引用显示窗口标识符(称为句柄)。根据您使用的是 32 位系统还是 64 位系统,可确定指针或句柄的大小(以字节为单位)。
在使用 64 位版本的 Office 2010 运行现有解决方案时存在两个基本问题:
& & Office 2010 中的本机 64 位进程无法加载 32 位二进制文件。在使用现有 Microsoft ActiveX 控件和现有加载项时,这被认为是一个常见问题,
& & VBA 以前不具有指针数据类型,因此,开发人员使用 32 位变量来存储指针和句柄。但现在在使用 Declare 语句时,这些变量会截断 API 调用返回的 64 位值。
介绍 VBA 7 基本代码
VBA 7 是新的基本代码,取代了早期版本的 VBA。32 位和 64 位版本的 Office 2010 中均包含 VBA 7。它提供了两个条件编译常量:VBA7 和 Win64。通过测试您的应用程序使用的是 VBA 7 还是以前版本的 VBA,VBA7 常量可帮助确保您的代码的后向兼容性。Win64 常量用于测试代码是以 32 位还是 64 位形式运行的。下文将介绍这两个编译常量。
ActiveX 控件和 COM 加载项兼容性
第三方及 Microsoft 提供的现有 32 位 ActiveX 控件与 64 位版本的 Office 2010 不兼容。对于 ActiveX 控件和 COM 对象,有三种可能的解决方案:
& & 如果您有源代码,则可以自己生成 64 位版本,
& & 您可以与供应商联系以获取更新版本,
& & 也可以搜索其他解决方案。
应用程序编程接口兼容性
VBA 和类型库的结合为您提供了许多用于创建 Microsoft Office 应用程序的功能。不过,有时,您必须直接与计算机的操作系统及其他组件进行通信,例如在您管理内存或进程时,在使用用户界面(例如窗口和控件)时,或在修改 Windows 注册表时。在这些情况下,最好选择使用一个嵌入动态链接库 (DLL) 文件中的外部函数。为此,可在 VBA 中使用 Declare 语句进行 API 调用。
Ee691831.note(zh-cn,office.14).gif注释:
Microsoft 提供了一个 Win32API.txt 文件,其中包含 1,500 个 Declare 语句以及一个用于剪切所需 Declare 语句并将其粘贴到您的代码中的工具。不过,这些语句适用于 32 位系统,必须使用下文讨论的信息将其转换为 64 位。您可以在 Excel MVP Jan Karel Pieterse 的网站 http://www.jkp-ads.com/articles/apideclarations.asp(该链接可能指向英文页面) 上找到此类型的转换示例。
Declare 语句类似于以下代码之一,具体取决于您调用的是子例程(没有返回值)还是函数(有返回值)。
Public/Private Declare Sub SubName Lib &LibName& Alias &AliasName& (argument list)
Public/Private Declare Function FunctionName Lib &Libname& alias &aliasname& (argument list) As Type
SubName 函数或 FunctionName 函数会被替换为 DLL 文件中过程的实际名称,表示在从 VBA 代码调用过程时所使用的名称。如果需要,您还可以为过程名称指定 AliasName 参数。包含要调用的过程的 DLL 文件的名称位于 Lib 关键字之后。最后,参数列表将包含必须传递给该过程的参数和数据类型。
下面的 Declare 语句将打开 Windows 注册表中的一个子项 并替换其值。
& & & & & & & & & & & & & & & & & & & & & & & & Declare Function RegOpenKeyA Lib &advapi32.dll& (ByVal Key As Long, ByVal SubKey As String, NewKey As Long) As Long
& & & & & & & & & & & & & & & & & & & &
RegOpenKeyA 函数的 Windows.h(窗口句柄)条目如下所示:
& & & & & & & & & & & & & & & & & & & & & & & & LONG RegOpenKeyA ( HKEY hKey, LPCSTR lpSubKey, HKEY *phkResult );
& & & & & & & & & & & & & & & & & & & &
在 Microsoft Visual C 和 Microsoft Visual C++ 中,前面的示例对 32 位和 64 位都能够正确编译。这是因为 HKEY 定义为指针,其大小反映了在其中编译代码的平台的内存大小。
在以前版本的 VBA 中,没有特定指针数据类型,因此使用了 Long 数据类型,而 Long 数据类型始终为 32 位,所以它在具有 64 位内存的系统上使用时会发生中断,因为前 32 位可能被截断或可能覆盖其他内存地址。以上任一情况都会导致不可预测的行为或系统崩溃。
为解决此问题,VBA 现在包含真正的指针 数据类型 LongPtr。此新数据类型使您能够正确编写原始 Declare 语句,如下所示:
& & & & & & & & & & & & & & & & & & & & & & & & Declare PtrSafe Function RegOpenKeyA Lib “advapire32.dll” (ByVal hKey as LongPtr, ByVal lpSubKey As String, phkResult As LongPtr) As Long
& & & & & & & & & & & & & & & & & & & &
此数据类型和新的 PtrSafe 属性使您能够在 32 位或 64 位系统上使用此 Declare 语句。PtrSafe 属性向 VBA 编译器指示 Declare 语句面向 64 位版本的 Office 2010。如果不使用此属性,那么在 64 位系统中使用 Declare 语句会导致编译时错误。请注意,PtrSafe 属性在 32 位版本的 Office 2010 上是可选的。因此现有 Declare 语句始终能够正常运行。
下表提供了有关已讨论过的新限定符和数据类型以及另一种数据类型、两个转换运算符和三个函数的详细信息。
类型 & & & & 项 & & & & 说明
指示 Declare 语句与 64 位兼容。此属性在 64 位系统上是必需的。
一种变量数据类型,在 32 位版本的 Office 2010 上是 4 字节数据类型,在 64 位版本上是 8 字节数据类型。这是为新代码声明指针或句柄的推荐方法,但如果它必须运行在 64 位版本的 Office 2010 中,则也为旧代码声明指针或句柄。只有 32 位和 64 位上的 VBA 7 运行时支持此数据类型。请注意,您可以为它赋予数值,但不能赋予数值类型。
这是只能在 64 位版本的 Office 2010 中使用的 8 字节数据类型。您可以赋予数值,但不能赋予数值类型(以避免截断)。
转换运算符
将简单表达式转换为 LongPtr 数据类型。
转换运算符
将简单表达式转换为 LongLong 数据类型。
变量转换器。在 64 位版本上返回 LongPtr,在 32 位版本上返回 Long(4 字节)。
对象转换器。在 64 位版本上返回 LongPtr,在 32 位版本上返回 Long(4 字节)。
字符串转换器。在 64 位版本上返回 LongPtr,在 32 位版本上返回 Long(4 字节)。
下面的示例演示如何在 Declare 语句中使用其中某些项。
& & & & & & & & & & & & & & & & & & & & & & & & Declare PtrSafe Function RegOpenKeyA Lib &advapi32.dll& (ByVal Key As LongPtr, ByVal SubKey As String, NewKey As LongPtr) As Long
& & & & & & & & & & & & & & & & & & & &
请注意,没有 PtrSafe 属性的 Declare 语句被假定为与 64 位版本的 Office 2010 不兼容。
如前所述,有两个新的条件编译常量:VBA7 和 Win64。为确保与以前版本的 Office 的向后兼容性,可使用 VBA7 常量(这是较典型的情况)来防止 64 位代码在早期版本的 Office 中运行。对于在 32 位版本和 64 位版本之间有所不同的代码(例如调用数学 API,它对其 64 位版本使用 LongLong,对其 32 位版本使用 Long),可使用 Win64 常量。下面的代码演示如何使用这两个常量。
#if Win64 then
& &Declare PtrSafe Function MyMathFunc Lib &User32& (ByVal N As LongLong) As LongLong
& &Declare Function MyMathFunc Lib &User32& (ByVal N As Long) As Long
#if VBA7 then
& &Declare PtrSafe Sub MessageBeep Lib &User32& (ByVal N AS Long)
& &Declare Sub MessageBeep Lib &User32& (ByVal N AS Long)
总而言之,如果您编写 64 位代码并打算在以前版本的 Microsoft Office 中使用它,则需要使用 VBA7 条件编译常量。不过,如果您在 Office 2010 中编写 32 位代码,则该代码的工作方式与在以前版本的 Microsoft Office 中一样,无需使用编译常量。如果希望确保对 32 位版本使用 32 位语句,对 64 位版本使用 64 位语句,则最好选择使用 Win64 条件编译常量。
使用条件编译属性
下面的代码是需要更新的旧 VBA 代码的示例。请注意旧代码中更新为使用 LongPtr 的数据类型,因为它们引用句柄或指针
旧 VBA 代码
Declare Function SHBrowseForFolder Lib &shell32.dll& _
&&Alias &SHBrowseForFolderA& (lpBrowseInfo As BROWSEINFO) As Long
Public Type BROWSEINFO
&&hOwner As Long
&&pidlRoot As Long
&&pszDisplayName As String
&&lpszTitle As String
&&ulFlags As Long
&&lpfn As Long
&&lParam As Long
&&iImage As Long
新 VBA 代码
#if VBA7 then& & ' VBA7
Declare PtrSafe Function SHBrowseForFolder Lib &shell32.dll& _
&&Alias &SHBrowseForFolderA& (lpBrowseInfo As BROWSEINFO) As Long
Public Type BROWSEINFO
&&hOwner As LongPtr
&&pidlRoot As Long
&&pszDisplayName As String
&&lpszTitle As String
&&ulFlags As Long
&&lpfn As LongPtr
&&lParam As LongPtr
&&iImage As Long
#else& & ' Downlevel when using previous version of VBA7
Declare Function SHBrowseForFolder Lib &shell32.dll& _
&&Alias &SHBrowseForFolderA& (lpBrowseInfo As BROWSEINFO) As Long
Public Type BROWSEINFO
&&hOwner As Long
&&pidlRoot As Long
&&pszDisplayName As String
&&lpszTitle As String
&&ulFlags As Long
&&lpfn As Long
&&lParam As Long
&&iImage As Long
Sub TestSHBrowseForFolder ()
& & Dim bInfo As BROWSEINFO
& & Dim pidList As Long
& & bInfo.pidlRoot = 0&
& & bInfo.ulFlags = &H1
& & pidList = SHBrowseForFolder(bInfo)
增加了 64 位版本的 Office 2010 后,您可以移动更多数据来增强功能。编写 32 位代码时,可以使用 64 位版本的 Microsoft Office 而无需进行任何更改。不过,在编写 64 位代码时,应确保您的代码包含特定关键字和条件编译常量,以确保代码与早期版本的 Microsoft Office 向后兼容,并确保在混合 32 位和 64 位代码时执行了正确的代码。
有关 Declare 语句的详细信息,请参阅以下资源:
& & 解析 Declare 语句(该链接可能指向英文页面)
阅读权限100
在线时间 小时
& & & & & & & &
这个和Win8没有关系,是32位程序和64位程序声明的差别
阅读权限30
在线时间 小时
& & & & & & & &
看来只能选用32位OFFICE了,多谢指导
阅读权限10
在线时间 小时
这个问题到底该怎么解决嘛?真心求教
阅读权限20
在线时间 小时
& & & & & & & &
高级,太高级了,不学跟不上时代,老了
阅读权限20
在线时间 小时
liucqa 发表于
32 位和 64 位版本的 Office 2010 之间的兼容性
Office 2010
消化學習中
阅读权限10
在线时间 小时
似乎高手也不多啊
最新热点 /1
京东ExcelHome畅销系列图书大联展,满100元-30元现金,莫失良机!
玩命加载中,请稍候
玩命加载中,请稍候
Powered by
本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任! & & 本站特聘法律顾问:徐怀玉律师 李志群律师

我要回帖

更多关于 win7 32位系统转64位 的文章

 

随机推荐