高分求助----棘手问题-Windows, NTFS, 单个可执行文件大小限制 NTFS文件系统下,单个文件大小可以超过4G,但是我生成了一个大于4G的单个可执行文件,运行时却弹出"xxx.exe不是有效的Win32程序"的提示框,我稍微测试了一下,生成一个3G多的可执行文件,可以正常运行;刚好是4G的可执行文件还没测试。 请教各位高手........何解? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 PE文件头数据结构的IMAGE_OPTIONAL_HEADER中有个成员是DWORD SizeOfImage;这个应该指的是这个PE文件的大小;DWORD 是32位,能记录的最大值就是4G;超过4G的,Windows在加载的时候会发现记录的大小与实际大小不一样,就认为文件已经损坏,于是报错------------------------猜测而已,渴望高手指点 因为你的操作系统是32位的,CPU也是32位的.32位的数值表达范围最大为4G(0xffffffff).比如操作系统要将这样的文件读入内存,那文件长度计数就是个问题.就算操作系统能在软件上解决这个问题.在硬件上,32位的CPU的寄存器最大也只能表示到4G,指令地址寄存器也不能把你的文件表示完. 你有没有试过winrar生成的自解exe? 我用7z生成了一个大于4G的自解压文件,生成的自解压文件运行时也提示"xxx.exe不是有效的Win32程序"问题似乎开始明朗了,或许32位Windows根本就不支持大于4G的单个可执行文件? 按理说,32位系统没法支持大于4g的试试winrar吧,商业软件这方面考虑更周到,如果他也不行,那估计是不行了 应该是无法加载超过4G的exe吧 32位系统最大的寻址空间也就是4G,在加载EXE文件时是利用内存映射文件来加载的,由于寻址空间的限制所以无法加载. 没法寻址。单个PE最大3GB,还得再PE头部加上标志并为系统开通3GB开关 用WinRar试过了,创建一个大于4G的自解压文件完成后,她弹出诊断信息提示框:xxx.exe:自解压文件太大,Windows功能执行超过4GB的可执行文件。 哟,写错了一个字,应该是"不能执行".结贴,散分,特别鸣谢:“ ahao (天·狼·星)” 补充:用WinRar打了一个大于4G的自解压包,在64位Windows下也不过运行 winrar有没有64位版本的?或者能生成64位的自解压exe的呢? 关于SQLite的安装 【button 能否设置为一样大,并且阵列排布?】 属性页切换的时候改变菜单栏的问题 !!!请高手帮忙!! VC++中有关于期望的正态分布函数么 vc中怎么给RichEdit赋一字符串值啊 极难问题,是高手就帮小弟我解决吧,一解决马上给分 如何在MFC中使用.net编写的组件(如C#写的) C#中窗体每次加载时托盘中图标的能不能总是一个? 谁能回答 这个问题? vc++串口通信编程,谁有好用的控件,谢谢了 bmp与数组 手机通过socket和web服务器进行post通讯,手机接收不完整
这个应该指的是这个PE文件的大小;DWORD 是32位,能记录的最大值就是4G;
超过4G的,Windows在加载的时候会发现记录的大小与实际大小不一样,就认为文件已经损坏,于是报错------------------------猜测而已,渴望高手指点
比如操作系统要将这样的文件读入内存,那文件长度计数就是个问题.就算操作系统能在软件上解决这个问题.
在硬件上,32位的CPU的寄存器最大也只能表示到4G,指令地址寄存器也不能把你的文件表示完.
试试winrar吧,商业软件这方面考虑更周到,如果他也不行,那估计是不行了
用WinRar试过了,创建一个大于4G的自解压文件完成后,她弹出诊断信息提示框:
xxx.exe:自解压文件太大,Windows功能执行超过4GB的可执行文件。
“ ahao
(天·狼·星)”