我开发了一个C#应用程序,它使用(VPro)。我的应用程序是用VisualStudio2008Pro在32位Windows PC上开发的,内存为3GB。
在应用程序启动期间,我看到分配了大量内存。到目前为止还不错,但是当我添加了许多视觉精化时,内存分配增加了,应用程序的一部分(只有Cognex )停止工作了。其余的应用程序仍然工作(工作线程,com上的套接字.)
我尽我所能节省内存,但当分配的内存大约为700 is时,我开始出现问题。在Cognex库的文档中有一个注释,说明不支持/LARGEADDRESSWARE。无论如何,我正在考虑尝试在win64上迁移我的应用程序,但我必须做什么呢?
。
每一个帮助都会非常感谢!!
提前感谢
发布于 2010-03-20 08:46:44
您可以在64位操作系统上运行32位应用程序,但它们运行在"WoW“(windows上的windows)中。也就是说,它们仍然以32位应用程序的形式运行,32位应用程序有着所有的限制。要作为本机64位应用程序运行,它们必须是正确的64位应用程序。
托管(C#)代码并不是特定于32/64平台的--它将被编译成正确的代码类型,以便在主机PC上本地运行。但是,任何非托管代码(C++,大多数第三方dll )都将被预编译为32位或64位,因此您必须在主机PC上使用dll的正确版本。
如果您尝试在64上运行您的程序,但使用32位dll,当您试图调用dll时,您的程序就会出现“错误的图像格式”错误。
所以..。要使您的程序真正的64位,您将需要构建一个版本,链接到64位的康耐视库。
您可以从Visual中选择任何类型的处理器,因此您不需要64位PC来开发64位应用程序(尽管您将在64位pc上进行测试!)
发布于 2010-03-20 10:35:19
项目+属性,生成选项卡,平台目标。它应该设置为任何CPU,默认情况下。它将使您的代码在64位版本的Windows上运行时自动运行64位。JIT编译器负责处理它。
您必须在机器上安装64位版本的.ocx才能工作。
https://stackoverflow.com/questions/2482388
复制相似问题