⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ex13.c

📁 NEO SDK是一个跨平台的免费开源图形软件开发包。它支持基本绘图、多种格式图形显示、鼠标操 作、扩展内存和扩充内存的操作、时钟、音频播放、多种字体的汉字及英文显示等等特性;更激动人心的是
💻 C
字号:
/* 
   Example program for the NEO SDK, by Dong Kai.
   http://neosdk.91i.net
   ckerhome@yahoo.com.cn
   
   这个简单的程序演示了如何使用扩充内存
*/

/*以下编译开关开启对EMS的支持*/
#define  NEO_ems_used

#include "neo.h"

void main()
{
   long ems_handle;
   long avail;
   int  i;
   char teststr[80];

   neo_init();
   install_keyboard();
   /*扩充内存初使化,失败即退出*/
   if(!ems_init())
   {
      printf("Expanded memory is not present\n");
      readkey();
      exit(0);
   }
   avail = ems_avail(); /*获得可用的扩充内存逻辑页页数*/
   if (!avail)
   {  /*失败退出*/
      printf("Expanded memory manager error\n");
      readkey();
      exit(0);
   }
   printf("There are %ld pages available\n\n",avail);
   /*分配10页(共160KB)的扩充内存*/
   if((ems_handle = ems_alloc(10)) < 0)
   {
      printf("Insufficient pages available\n");
      readkey();
      exit(0);
   }
   /*向申请到的10个逻辑页面里写入测试字符串*/
   for (i = 0; i < 10; i++)
   {
      sprintf(teststr,"%02d This is a test string\n",i);
      ems_map(ems_handle,0,i);/*首先将扩充内存和常规内存建立映射关系*/
      ems_move(0,teststr,strlen(teststr) + 1);/*将测试字符串从常规内存复制到扩充内存*/
   }
   /*从10个逻辑页面中读出测试字符串*/
   for (i = 0; i < 10; i++)
   {
      ems_map(ems_handle,0,i);/*建立扩充内存和常规内存的映射关系*/
      ems_get(0,teststr,strlen(teststr) + 1);/*从扩充内存中读出测试字符串并显示*/
      printf("READING BLOCK %d: %s\n",i,teststr);
   }
   /*显示句柄ems_handle的句柄数*/
   printf("The ems_handle have %d pages.\n", get_handle_pages(ems_handle));
   ems_free(ems_handle);/*释放扩充内存句柄*/
   readkey();
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -