C# C开发中可能存在的64位操作系统问题

C# C开发中可能存在的64位操作系统问题,c#,visual-studio-2008,windows-7,64-bit,C#,Visual Studio 2008,Windows 7,64 Bit,我正在将我的操作系统更新到Windows7x64,我只有运行32位操作系统的经验。是否有人对64位环境有过不良/良好的体验 作为参考,我使用的工具有: Visual Studio 2008 Oracle 10g XE MS SQL Server 2008提供的分析服务 我不会太担心,如果每个程序都有x64下载链接,那么就使用它。如果没有,那么代码将通过WOW64仿真运行。在你看来,它会像正常一样运行 请看我5分钟前的回答 WOW64指的是windows64上的windows32 这是一个透明的模

我正在将我的操作系统更新到Windows7x64,我只有运行32位操作系统的经验。是否有人对64位环境有过不良/良好的体验

作为参考,我使用的工具有:

Visual Studio 2008 Oracle 10g XE MS SQL Server 2008提供的分析服务
我不会太担心,如果每个程序都有x64下载链接,那么就使用它。如果没有,那么代码将通过WOW64仿真运行。在你看来,它会像正常一样运行

请看我5分钟前的回答

WOW64指的是windows64上的windows32 这是一个透明的模拟 允许x86程序运行的laywer 在x64操作系统上。WOW64将 如果运行 x64 Windows上的x86 Windows程序 操作系统


我正在运行Windows7 Ultimate x64

VisualStudio2008运行良好。 我使用的是Subversion,但不是Tortoise。AnkhSVN工作正常。
其他的我没有经验。

我使用的大多数软件都没有x64的问题,XP x64出现问题已经有几年了,人们似乎已经赶上了x64

但是,x64开发的主要问题是,在VisualStudio中以x64模式运行时,无法在调试时编辑代码

您必须使用x86作为目标平台才能这样做


这就是为什么Visual Studio 2010的beta版将目标平台默认为x32而不是任何平台的原因之一。

在64位操作系统上运行会产生一些副作用,这些副作用在某种程度上是显而易见的。最常见的问题是:

在Visual Studio中编辑并继续将不起作用。您可以通过强制.NET应用程序以32位模式运行来修复此问题。项目+属性,构建选项卡,平台目标=x86。于2013年解决

如果在.NET应用程序中使用任何ActiveX控件或COM组件,您可能会发现您的程序不再工作,因为您的计算机没有相应的64位版本的COM服务器。您将得到错误0x80040154,REGDB_E_CLASSNOTREG,类未注册。与上面相同的修复

64位调试器不支持混合模式调试,您必须提交到仅托管或仅本机调试。与上面的修复相同,只要您没有64位特定的问题。在VS2010中解决

如果p/Invoke声明编写得不好,并且声明了需要IntPtr的uint或int,则会在64位模式下停止工作。通常会得到AccessViolation异常或失败返回代码。或者一个Pinvokestack警告。您应该不会在查找错误时遇到任何问题,只需修复声明即可

64位版本中没有几个旧版的Microsoft库。这是Microsoft Access数据库最常见的问题。与上面相同的修复

必须使用正确版本的Regasm.exe来注册[ComVisible]程序集。从Framework或Framework64中选择一个,具体取决于客户机程序是以64位还是32位模式运行。如果您希望服务器在其中一种模式下可用,则可以同时使用这两种模式

一些COM类型库在其方法声明中包含与位无关的参数。ADO 2.8是一个值得注意的版本。请确保使用Tlbimp.exe的正确位来生成正确的COM互操作程序集,Visual Studio不会正确执行此操作。方法与Regasm.exe相同

32位程序具有与64位程序不同的注册表视图。具体而言,HKCR和HKLM\软件配置单元是虚拟化的。在Regedit.exe中,32位可见键位于HKLM\Software\WOW6432节点键下。这可能会导致使用注册表的程序出现许多微妙的问题。.NET 4 RegistryKey.OpenBaseKey允许指定所需的视图

同样对于COM,您将有权使用Regsvr32.exe的正确位注册非托管COM服务器而不是.NET服务器,它们使用Regasm.exe。对于64位服务器,请使用c:\windows\system32;对于32位服务器,请使用c:\windows\syswow64

文件系统中的文件夹是虚拟化的,特别是c:\windows\system32和c:\program文件。32位程序将看到c:\windows\syswow64和c:\program文件x86

安装人员需要考虑上述所有问题

皇权运动真的花了我很多时间才弄明白。谢谢