Chinaunix首页 | 论坛 | 博客
  • 博客访问: 344243
  • 博文数量: 97
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 636
  • 用 户 组: 普通用户
  • 注册时间: 2014-10-12 22:41
文章分类

全部博文(97)

文章存档

2017年(8)

2015年(87)

2014年(2)

我的朋友

分类: 嵌入式

2015-06-13 12:48:27

在wince系统中,除去系统运行的内存后,剩余的内存分为存储内存与程序内存。 
存储内存顾名思义即为存储用的内存,非存储器件空间下所放置的文件就在存储内存中;
程序内存即为程序可用的内存空间;

通常存储内存与程序内存在系统定制时就已经固定,在系统之上只能手动修改控制面板达到动态分配的目的,不是很方便。  在此提供一种代码控制程序内存与存储内存分配的方法,直接上代码:

点击(此处)折叠或打开

  1. HINSTANCE hDll = LoadLibrary(_T("Coredll.dll"));
  2.     SETSYSTEMMEMORYDIVISION SetSystemMemoryDivisionProc = NULL;
  3.     GETSYSTEMMEMORYDIVISION GetSystemMemoryDivisionProc = NULL;
  4.     if( NULL != hDll )
  5.     {
  6.         //获取导出函数地址
  7.         SetSystemMemoryDivisionProc = (SETSYSTEMMEMORYDIVISION)GetProcAddress(hDll,_T("SetSystemMemoryDivision"));
  8.         GetSystemMemoryDivisionProc = (GETSYSTEMMEMORYDIVISION)GetProcAddress(hDll,_T("GetSystemMemoryDivision"));

  9.         if(SetSystemMemoryDivisionProc && GetSystemMemoryDivisionProc)
  10.         {
  11.             DWORD dwStorePages = 0;
  12.             DWORD dwRamPages = 0;
  13.             DWORD dwPageSize = 0;
  14.             BOOL bRet = (*GetSystemMemoryDivisionProc)(&dwStorePages,&dwRamPages,&dwPageSize); //获取存储内存与物理内存大小
  15.             RETAILMSG(1,(TEXT("dwStorePages =0x%x , dwRamPages = 0x%x ,dwPageSize= %d\r\n"),dwStorePages,dwRamPages, dwPageSize));
  16.             if(bRet)
  17.             {
  18.                 int nPageCount;
  19.                 nPageCount = 368; //存储内存占用页

  20.                 RETAILMSG(1,(TEXT("nPageCount= %d\r\n"), nPageCount));
  21.                 (*SetSystemMemoryDivisionProc)(nPageCount); //设置
  22.                 Sleep(222);
  23.             }

  24.         }
  25.         DWORD StorePages = 0;
  26.         DWORD RamPages = 0;
  27.         DWORD PageSize = 0;

  28.         BOOL Ret = (*GetSystemMemoryDivisionProc)(&StorePages,&RamPages,&PageSize); //获取存储内存与物理内存大小
  29.         RETAILMSG(1,(TEXT("StorePages =0x%x , RamPages = 0x%x ,PageSize= %d\r\n"),StorePages,RamPages, PageSize));
  30.             
  31.         Sleep(200);

  32.         SetSystemMemoryDivisionProc = NULL;
  33.         GetSystemMemoryDivisionProc = NULL;
  34.         FreeLibrary(hDll);
  35.         hDll = NULL;
  36.     }

阅读(1956) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~