VC2005编程,用的就是例子程序,申请512M时候正常使用,到了1G就不行了。操作系统是 2003 企业版,16g物理内存

解决方案 »

  1.   

    如果加了3GB标志,关掉
    如果没加PAE标志,加上还有就是,SE_LOCK_MEMORY_NAME的权限提了没
      

  2.   

    楼上说的,我都检查过了,因为系统在属性里头已经认到了8G,还有ini文件也改了,权限不提,基本的512m都会申请失败的。唉。用的是标准的MSDN的代码啊。网上查到的要改掉都改了
      

  3.   

    这失败是正常的!因为这需要你的进程必须有连续的1G以上的空间!我个人建议还是不要分配大内存。Exchange和SQL服务器已经算是使用内存比较狠的了,他们也只是分配了一二G的内存,而且他们都是分配一块一块小内存拼起来的。(exchange的内存分配单位好像小于32M)一下子分配一个很大的内存看起来简单,但是实际上暴露了设计上的粗糙!不考虑资源的有效利用,是非常要不得的事情
      

  4.   

    这分给我吧,我当初是到国外网站花了不少时间才找到答案的。我就是操作系统是 2003 企业版,8g物理内存编程:首先,你安装时要一系列的选项要 注意其中的x64 要勾上。如果已经安装了,在控制面板 添加程序中 找到VC2005,增加这一项。然后,在配置管理器-活动解决方案中,新建 x64即可。
      

  5.   

    首先,你安装VS2005时要一系列的选项要 注意其中的x64 要勾上。
    如果VS2005已经安装了,在控制面板- 添加程序中 找到VS2005,打开,进入VS2005维护模式-添加或移除-语言工具-vc-x64编译器和工具,勾上,点击更新。就增加了64位编程的能力,才能支持4G以上内存,PAE标志都不不用管了。我至少一次分配过2G内存。然后,在配置管理器-活动解决方案中,新建 x64即可。做什么工作,机器不错,能用16G内存?
      

  6.   

    我的电脑的系统属性是WindouwsServer2003企业版,SP2-32位。计算机是8G的内存物理地址扩展,VS2005安装时已经选了X64,X64配置也加上了,现在启动调试时弹出对话框告知32位版本无法调试64位进程或64位转储。楼上的兄弟是不是64位操作系统进行调试的。
      

  7.   

    我的电脑的系统属性是WindouwsServer2003企业版,SP2-32位.那问题就在这里,你得改用WindouwsServer2003-x64的。
      

  8.   

    那问题就在这里,你得改用WindouwsServer2003-x64,有中文的,也好用。
      

  9.   

    花了一个上午做测试,搞定了,32位操作系统是可以的,MSDN的例子有问题,导致方向有错误。要读函数解说,有一个窗口概念,用的时候再映射。就是说开了一个虚拟的进程空间后。是远远小于你要映射到物理地址,然后通过偏移你的页面指针,然后移动您的虚拟的进程空间。反正记住一点,MSDN里头这个例子要用起来是有错误指导的。
      

  10.   


    你不妨把你的经验说说让大家学习学习,我当初32bit时,最多new到1G,跟踪发现vs设定了一个最大值参数,我不敢改它的参数,就改用64bit的了。
    64bit写程序与32bit区别也不大,目前感到不能使用的是不能使用jet连接access,我就改用sql 2005了。