32位操作系统下4G以上内存应用程序的开发

小弟想在32位的WINDOWS XP或2003中做一个程序,这个程序要向系统申请10G左右的内存,但不知道怎么做,谁能给点提示呢?

原来是老朋友,怪不得对我这么了解。我现在确实懒了,想要做的事情做了个计划,大概的算了一下时间,任务都排到2012年去了。

32位系统使用超过4GB的物理内存也是可以的,但是有一些限制:
1. 必须有那么多内存安装(废话)
2. 操作系统要支持PAE(物理地址扩展)

就你的需要来说,XP、Win2003标准版是不可能的了,它们支持PAE也只限于4GB物理内存,至少要Win2003企业版,支持32GB以上内存。

有了操作系统的支持,32位应用程序只需要用AWE API就可以访问更多的物理内存了,AllocateUserPhysicalPages、MapUserPhysicalPages、FreeUserPhysicalPages等等。
注意,用这种方法,分配了10GB内存,但是不能线性访问的,要分次映射(MapUserPhysicalPages)到用户的2GB地址空间中的一个小窗口,然后通过这个小窗口访问,类似DOS程序使用EMS、XMS的方法。
个人建议对于这么大的内存使用量,是否可以考虑使用内存磁盘(RamDisk),也许性能消耗会相对大一点,但是编码会稍小很多,并且相对通用。

不能,楼主可以考虑用C++来写一个能执行Lua、Javascript这类脚本语言的程序,用户就用这些脚本语言写解密算法,再压缩~加密~保存成一个你自己认识的调用文件。
关于脚本语言的支持网上有很多,Lua用得比较多,Windows也自带了ActiveX Scripting,还有FireFox的引擎SpiderMonkey和Chrome的V8引擎都是不错的。
可不可以由用户自己编译一个dll呢?你定义好接口,用户按照这个编译秤dll文件,你在程序里面loadlibrary调用

用户可以定义DLL,我们一开始也是这样想的,但软件卖给用户,就不是想装我们软件后还去装C++builder编译器,所以,前面这种方法被我们否定了。

楼的意思是你定义一个DLL的接口(例如规定DLL里的导出函数名,该函数可以返回一个虚基类),由客户来定制这个DLL(即由客户编写DLL,实现这个虚基类并返回给你的程序),就象很多带插件的软件一样。

用脚本语言解释,速度不会快吧
ASPEN PLUS等大型软件中都有自己的编译器,试试12楼的方法,这个比较可行。
我觉得好的方法是你发布程序的时候,带个bcc32的编译器,用户写好代码以后,用这个编译器编译一下,生成个dll

6楼:解析脚本,那不是跟编译原理有关了,冒失很复杂。不是很懂。能不能说清楚。
8楼:用C#写一个接口,然后用BCB调用,那样是不是需要实现这个接口,然后让主程序调用呀,这样的话,还是用户提供编译了。

网关与计算机通过网络交换机连接,网关有自己的系统自己的ip,现在想在未知网关ip的状况下实现自动寻址。进而对网关进行操作。希望高手帮忙。
你要远程操作网关??一个网络里面,网关也只是一个ip而已,你怎么判断他是网关还是主机,这个恐怕要研究一下你的网关了,看是不是有这个功能。瞎说的,这个实在是不了解。
你要找到网关,然后更改网关的地址?

楼主到底是什么需求啊?怎么感觉有点走偏了呢?

如果网关是一个服务器,可以在服务器上写个广播程序,发送类似“我是网关,我的ip是XXXX”这样的广播报,
如果是交换机或者路由器,那就不知道怎么做了
我电脑配置的网关地址不是这个。其实我说的网关就是相当于一个小型的系统有自己的环境和ip。通过网络交换机和我的机器相连,我只有把他设到我的网段才可以与他通信,所以需要知道他现在的ip。
那你电脑配置的网关地址是不是这个?更改网关地址是更改你本机设定的网关地址还是你这个网络中真正的网关地址??等待你的回答,也许我的办法可以,呵~
来源: nba直播
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值