基于嵌入式Linux的KTV点歌系统毕业设计(论文)word格式.doc

上传人:文库蛋蛋多 文档编号:2388207 上传时间:2023-02-17 格式:DOC 页数:45 大小:1.52MB
返回 下载 相关 举报
基于嵌入式Linux的KTV点歌系统毕业设计(论文)word格式.doc_第1页
第1页 / 共45页
基于嵌入式Linux的KTV点歌系统毕业设计(论文)word格式.doc_第2页
第2页 / 共45页
基于嵌入式Linux的KTV点歌系统毕业设计(论文)word格式.doc_第3页
第3页 / 共45页
基于嵌入式Linux的KTV点歌系统毕业设计(论文)word格式.doc_第4页
第4页 / 共45页
基于嵌入式Linux的KTV点歌系统毕业设计(论文)word格式.doc_第5页
第5页 / 共45页
点击查看更多>>
资源描述

《基于嵌入式Linux的KTV点歌系统毕业设计(论文)word格式.doc》由会员分享,可在线阅读,更多相关《基于嵌入式Linux的KTV点歌系统毕业设计(论文)word格式.doc(45页珍藏版)》请在三一办公上搜索。

1、目录摘要1关键字1Abstract2Keywords21绪论31.1引言31.2嵌入式KTV点歌系统概述31.3论文的主要工作32系统平台分析42.1开发板芯片S3C2410X简介42.2开发环境42.2.1交叉编译工具链42.2.2建立tftp服务器42.2.3配置NFS服务52.2.4设置minicom53定制板上系统63.1开发板Linux内核63.1.1移植Linux内核63.1.2 Linux内核的配置和编译63.1.3烧写Linux映像zImage83.2制作板上根文件系统103.2.1在一个已建好的文件系统上进行修改103.2.2建立根文件系统113.3LCD驱动和网络驱动113

2、.3.1FrameBuffer123.3.2JXARM9-2410-1开发板Linux显示(FrameBuffer)驱动程序123.3.3网络驱动134图形界面(MiniGUI)应用程序开发144.1MiniGUI简介144.2MiniGUI的安装及配置144.2.1MiniGUI的安装144.2.2MiniGUI的本地运行环境设置164.3MiniGUI编程基础164.4MiniGUI的移植215嵌入式数据库(mSQL)开发255.1mSQL简介255.2 mSQL安装255.3 mSQL的系统配置255.4mSQL数据库操作265.5交叉编译mSQL276服务器与客户端的设计与实现286.

3、1MiniGUI服务器端与客户端的设计与实现286.1.1 MiniGUI服务器端的设计与实现286.1.2MiniGUI客户端的设计与实现296.2MSQL服务器端与客户端的设计与实现316.2.1MSQL服务器端的设计与实现316.2.2MSQL客户端的设计与实现326.3MiniGUI与MSQL接口的设计与实现326.4服务器端与客户端通信的设计与实现347系统使用指南37结论42参考文献:42致谢43基于嵌入式Linux的KTV点歌系统摘要:随着嵌入式系统技术的发展,以ARM公司的32位RISC处理器结合开源免费、性能优良的Linux操作系统的嵌入式平台,越来越多受到嵌入式手持设备商的

4、青睐,近年来,显现了巨大的市场价值和广阔的应用前景。本论文研究和解决的课题是设计一个基于嵌入式Linux的KTV点歌系统。本论文主要包括以下几个方面:(1)介绍了嵌入式KTV点歌系统的背景、现状及应用前景,结合当前人们的需求进行分析,提出研发嵌入式KTV点歌系统的必要性;(2)进行了硬件平台的介绍,软件开发平台的搭建;(3)嵌入式系统支撑平台的选用;(4)编译内核,定制根文件系统;(5)安装和交叉编译图形系统MiniGUI和嵌入式数据库mSQL,分析MiniGUI和mSQL的编程以及如何将mSQL操作函数嵌入到MiniGUI程序中进行程序设计;(6)总结本设计中的缺陷并提出相应解决方法。在整个

5、项目的设计与实现过程中遇到了一些问题,如硬件部分对于sata接口硬盘的不支持,软件部分的易用性,图形界面以及数据库的实现,鉴于时间有限,没能完成播放器的支持,以及音频的驱动,最终实现的是KTV查歌系统。关键字:嵌入式系统;MiniGUI;内核;Linux;mSQL DBMSAn system of KTV VOD based on embedded LinuxTan Juan(2010Session Student of The Computer Science and Technology Major Of Department Of Computer Science in Hunan Ci

6、ty University, YiYang, Hunan, 413000, China)Abstract:With the development of embedded systems technology, the 32-bit RISC processor, such as ARM, combined with open source project of free and the embedded operating system platform of Linux which play excellent performance on embedded development bec

7、ome more and more popular in embedded handheld device makers, showing a huge market value and broad application prospects in recent years. In this thesis, research and resolve issues has been done is to design a Linux-based embedded systems of KTV VOD . This thesis mainly include the following aspec

8、ts.Firstly,It starts with the KTV backgroud and tatus quo,analyses with peoples current demands,points out the necessity of developing the Linux-based embedded systems of KTV VOD.Secondly,it introduces the platform of the hardware,and it also tells us the way to establish the software development pl

9、atform.Thirdly,it describes the support platform selection of embedded systems.Fourth,it tells us how to compile the kernel and customize the root file system.Fifth,it inform us the way to install and cross-compilation the graphics system MiniGUI and the embedded database mSQL.Certainly,it analysis

10、the programing of MiniGUI and mSQL,and how mSQL functions embedded operating procedures for program design MiniGUI.And at last,summaries the design flaws and proposes appropriate solutions. Throughout the design and implementation of the project,I runs into some issues, such as the hardware section

11、for sata interface hard drives do not support and the usability of the software,the implementation of the graphical interface and the database , since time is limited, I failed to finish the player support, and audio driver, and ultimately it is only offord to select song.Keywords: embedded systems;

12、MiniGUI;kernel;Linux;mSQL DBMS1绪论1.1引言当前,各类信息极度丰富,数字信息技术和网络技术高度发达,常需借助各种计算机对各类信息进行处理。同时,这些计算机不再局限于以前的PC,而是包括形态各异、性能千差万别的各类嵌入式系统从基于群集的超级计算机到嵌入在冰箱中的微控制器。后PC时代的到来,使得人们开始越来越多地接触到一个新的概念嵌入式产品。嵌入式产品遍布于人们的日常生活,从手机、PDA到家中的空调、冰箱,从小汽车到波音飞机,甚至武器库中的巡航导弹。数字时代的标志不再是一台一台的PC,而是形态各异的嵌入式系统。1.2嵌入式KTV点歌系统概述本系统设计主要使用了mSQ

13、L管理数据,操作系统使用Linux,用户图形界面使用了MiniGUI。在硬件上,选用了低功耗、高性能的ARM9处理器,涉及到的主要技术有嵌入式技术、数据库技术、用户图形界面编程技术。点歌系统由客户端、服务器组成。客户端采用嵌入式技术实现,用户可以通过它来查询歌曲。服务器充当数据管理员的角色,可以对数据进行增删改查操作。由于人力物力财力等资源的有限,本文设计并实现了一个功能简单的KTV点歌系统。1.3论文的主要工作1、搭建开发平台。安装Linux和Windows双操作系统,熟悉Linux下编程。2、对Linux内核进行裁剪,制作根文件系统。3、下载并安装MiniGUI和mSQL,并对他们进行配置

14、。4、进行MiniGUI应用程序的编写,做出KTV点歌系统的图形化界面,其中包括主机端和客户端。5、进行数据库的操作,用C的API函数与数据库交互。6、将mSQL嵌入到MiniGUI中进行程序设计。7、编写系统通信模块,实现主机端与客户端的交互。8、交叉编译程序,使系统在开发板上运行起来。2系统平台分析JXARM9-2410-1教学实验系统的硬件部分包括基本模块、调试模块、通信模块、人机交互模块、A/D及D/A模块、工业控制模块、IDE/CF/SD/MMC接口模块、GPRS模块、GPS模块和扩展模块。目标处理器采用Samsung公司的S3C2410X微处理器。主板包括3个UART接口,标准JT

15、AG接口,10M/100M以太网卡,2个USB HOST接口,5.7英寸、STN 256色LCD显示器/触摸屏,640X480的分辨率。系统具有体积小、功耗低、处理能力强等特点。2.1开发板芯片S3C2410X简介S3C2410X微处理器是一款由Samsung公司为手持设备设计的低功耗、高集成度的基于ARM920T核的微处理器。为了降低系统总成本和减少外围器件,这款芯片中集成了以下的部件:16KB指令Cache、16KB数据Cache、MMU、外部存储控制器、LCD控制器(STN和TFT)、NAND Flash控制器、4个DMA通道、3个UART通道、1个I2C总线控制器、1个I2S总线控制器

16、,以及4个PWM定时器和1个内部定时器、通用I/O口、实时时钟、8通道10位ADC和触摸屏接口、USB主、USB从、SD/MMC卡接口等。2.2开发环境由于嵌入式系统一般资源都比较紧张,不能在本机(即开发板)运行开发工具,因此,嵌入式系统的开发采用一种叫做交叉编译调试的方式,需要在宿主机上安装如交叉编译工具链,建立tftp服务器,构建网络文件系统nfs等。2.2.1交叉编译工具链交叉编译工具链的目的是为了在一个平台体系结构下能编译、链接、处理和调试另一个平台体系结构下的程序,使得编译生成的程序能够在另一个平台下运行。Linux使用的是GNU的工具链,包括:binutils,gcc,glibc等

17、。与JXARM9-2410-1开发板配套的光盘里有交叉编译工具链,版本号为2.95.3,解压在宿主机的/usr/local/arm/2.95.3目录下。同时,移植mSQL时也会用到版本号为3.4.1的交叉编译工具链。具体情况可见参考文献1。2.2.2建立tftp服务器本系统已安装tftp服务器程序,仅需配置。在宿主机上执行:$setup,然后选择System service,将其中的tftp一项选中,并去掉ipchains和iptable两项服务,还要选择Firewall configuration,选中No firewall。保存并退出setup,执行service xinetd resta

18、rt命令以启动tftp服务。2.2.3配置NFS服务本系统已安装NFS服务器程序,仅需配置。编辑/etc/exports文件,命令是$vi /etc/exports,在该空文件中添加 /tftpboot 192.168.1.46/255.255.255.0(rw),其中“/tftpboot”是共享的目录,也是目标系统的根文件系统目录,“192.168.1.46”表示目标板的IP地址。用命令$/etc/init.d/nfs restart重启NFS服务,设置生效。2.2.4设置minicom在Linux操作系统下,使用minicom作为超级终端,因此首先必须正确配置超级终端。在宿主机端Linux

19、下执行: #minicom s图2.1minicom配置1第一次使用时需要对串口进行配置,参照上图2.1的配置,相应输入左边的“A”、“B”等字符将出现配置各自参数的界面,分别配置成上述设置,保存并退出后将启动minicom程序,此时将JXARM9-2410的UART0连接到PC机串口并将JXARM9-2410上电既可。3定制板上系统3.1开发板Linux内核Linux是一个类似于Unix的操作系统,不仅能够运行在PC上,在嵌入式系统方面也有很成熟的应用,已成为嵌入式操作系统的理想选择。将Linux内核移植到ARM的时候要打上ARM公司的补丁。创维特开发板上的系统打的是2.4.18-rmk-p

20、xal补丁。该系统除了完成基本的内核移植外,还完善了大量外围设备的驱动。3.1.1移植Linux内核对于嵌入式Linux系统来说,内核移植工作主要是修改跟硬件平台相关的代码,一般不涉及Linux内核通用的程序。移植的难度也取决于两种硬件平台的差异。Linux对于特定的硬件平台的软件就是BSP(Board Support Package)。由于Linux内核具备可移植性的特点,并且已经支持了各种体系结构的很多种目标板,很容易从中找到和自己硬件类似的目标板。参考内核已经支持的目标板来移植BSP,就如同使用模板开发程序。内核移植工作,主要就是添加开发板初始化和驱动程序的代码。这部分代码大部分是跟体系

21、结构相关的,在arch目录下按照不同的体系结构管理。下面进行ARM S3C2410平台内核代码移植。添加开发板平台支持选项,主要修改以下几个文件:arch/arm/mach-s3c2410、arch/arm/tools/mach-types、arch/arm/config.in、arch/arm/Makefile、arch/arm/boot/compressed、include/asm-arm/arch-s3c2410S3C2410属于片上系统,处理器芯片具备串口、显示等外围接口的控制器。这样,参考板上的设备驱动程序多数可以直接使用。但不同的开发板可以使用不同的SDRAM、Flash、以太网接

22、口芯片等。这就需要根据硬件修改或者开发驱动程序。3.1.2 Linux内核的配置和编译配套光盘中Linux源代码在/home/cvtech/jx2410/linux目录中。对于交叉开发,在编译之前要在顶层的Makefile中设置ARCH、CROSS_COMPILE和EXTRA_VERSION变量,然后才能选择配置出特定的体系结构平台。ARM平台的例子如下:ARCH := armCROSS_COMPILE := arm-linux-EXTRA_VERSION :=1、配置内核$ cd /home/cvtech/jx2410/linux$make menuconfig运行效果如图3.1所示:图3.

23、1内核编译menuconfig界面启动菜单配置工具后,选择Load an Alternate Configuration File选项,然后确认(左右箭头键移动选择到Select,然后键入回车键)。该选项将载入jx2410的标准配置文件config-jx2410,此文件保存在/home/cvtech/jx2410/linux目录下,不要修改此文件。在提示框中键入config-jx2410配置文件名,然后单击OK按钮确认,其他配置默认,保存退出。2、建立依赖关系#make dep3、编译编译:可以通过make或者make zImage进行编译,他们的差别在于make zImage将make生成的

24、核心进行压缩,并加入一段解压的启动代码。本实验采用make zImage。#make zImage生成的Linux映像文件zImage保存在/home/cvtech/jx2410/linux/arch/arm/boot/目录下。3.1.3烧写Linux映像zImage图3.3Block device配置选项成功编译Linux内核后,通过JX2410的u-boot将核心下载到SDRAM,另外内核启动过程将加载RAMDISK文件系统,因此下载zImage之前,开发板需加载了根文件系统ramdisk.gz。将zImage复制到宿主机/tftpboot/目录下,运行命令# cp /home/cvtec

25、h/jx2410/linux/arch/arm/boot/zImage /tftpboot启动u-boot,并在u-boot中使用tftp下载ramdisk.gz和zImage。然后启动minicom: 命令为#minicom 将JXARM9-2410的串口0与PC的串口0连接,将JXARM9-2410的网卡和PC的网卡使用直连网线进行连接,或将JXARM9-2410和PC机使用普通网线接入同一局域网。然后将JXARM9-2410上电,正常情况下将在minicom中看到BootLoader菜单界面。然后在BootLoader中按照如下命令进行: JX2410 # tftp 30800000 r

26、amdisk.gz RTL8019AS Founded! MAC : 0x8-0x0-0x3e-0x26-0xa-0x5b MAC: 0x0:0x0:0x0:0x0:0x0:0x0 TFTP from server 192.168.1.180; our IP address is 192.168.1.45 Filename ramdisk.gz. Load address: 0x30800000 Loading: # done Bytes transferred = 4632504 (46afb8 hex) JX2410 # tftp 30008000 zImage RTL8019AS Fou

27、nded! MAC : 0x8-0x0-0x3e-0x26-0xa-0x5b MAC: 0x0:0x0:0x0:0x0:0x0:0x0 TFTP from server 192.168.1.180; our IP address is 192.168.1.45 Filename zImage. Load address: 0x30008000 Loading: # # # done Bytes transferred = 871740 (d4d3c hex) JX2410 #go 30008000 Uncompressing Linux. done, booting the kernel. L

28、inux version 2.4.18-rmk7-pxa1 (rootLinux-Lizm) (gcc version 2.95.3 20010315 (release) #133 四 11月 18 11:07:55 CST 2004 CPU: ARM/CIRRUS Arm920Tsid(wb) revision 0 Machine: Samsung-SMDK2410 3.2制作板上根文件系统根文件系统为Linux提供了init程序、shell命令、设备文件节点和运行时的库文件等。内核在没有正确的根文件系统的情况下运行会出现panic错误信息而终止。3.2.1在一个已建好的文件系统上进行修改

29、进入/home/cvtech/jx2410/root目录并修改ramdisk文件系统:#cd /home/cvtech/jx2410/root/ 创建一个挂载ramdisk文件系统的目录:#mkdir rd 解压缩ramdisk.gz文件系统:#gunzip ramdisk.gz 在/home/cvtech/jx2410/root/目录下会生成ramdisk,ramdisk为解开后的Linux的文件系统映像文件。 再将ramdisk文件系统映像文件mount到新建目录rd中: #mount o loop ramdisk rd/ 进入rd目录:#cd rd/ 列出目录中文件:#ls 在命令终端中

30、会看到以下显示:bin dev etc lib linuette mnt proc qt sbin tmp usr var 这个就是Linux的文件系统,与目标板启动后的文件系统完全一样。 此时用户可以加入自己的应用程序。卸装文件系统: #umount rd 压缩新生成的ramdisk文件系统映像文件: #gzip ramdisk ramdisk.gz得到的ramdisk.gz就是新生成的目标根文件系统。3.2.2建立根文件系统由于创维特提供的ramdisk文件系统只有12MB,不能满足本系统的要求,所以必须自己建立根文件系统,根据本系统所使用的MiniGUI和mSQL软件的库文件大小并经过试

31、验后得出将根文件系统大小设为18MB。详见参考文献2。1、建立loop目录为根文件系统临时挂载点:#mkdir /mnt/loop 2、建立文件系统映象:#dd if=/dev/zero of=/tmp/ramdisk bs=1M count=18 注意可根据自己的需要建立大小合适的文件系统,更改count大小即可。 此处以dd命令建立了一个18MB文件系统映象,存于/tmp/ramdisk,并以.dev/zero对它进行初始化。用这种方式对文件系统进行初始化,稍后当我们使用gzip命令压缩整个映象时,将让文件系统中未使用的部分获得最大压缩比。 3、将/dev/loop0格式化为ext2文件系

32、统: #mke2fs t ext2 F v m 0 /tmp/ramdisk 4、把ramdisk挂载到目录/mnt/loop上: #mount -o loop /tmp/ramdisk /mnt/loop 5、拷贝系统中所用到的库文件、头文件到ramdisk的lib和include目录中,同时还有一些基本的应用程序、设备文件、init初始化文件等均放在ramdisk所挂载的/mnt/loop下。 6、卸载文件系统,得到的/tmp/ramdisk就是文件系统映像: #umount /mnt/loop7、压缩新生成的ramdisk文件系统映像文件: #gzip ramdisk ramdisk.g

33、z就生成了新的根文件系统ramdisk.gz3.3LCD驱动和网络驱动本系统所用的图形系统MiniGUI访问图形设备是通过设备文件/dev/fb进行的,这是LCD的设备文件,该文件的操作是在LCD驱动程序中实现的。LCD驱动的主要工作是:首先初始化LCD控制器,分配显示缓冲区;第二,编写fb_ops结构体中的成员函数;最后实现文件操作结构体file_operations中的主要函数。设备文件/dev/fb对应一个帧缓冲设备Framebuffer。3.3.1FrameBuffer帧缓冲设备FrameBuffer机制模仿显卡的功能,将显卡硬件结构抽象掉,可以通过FrameBuffer的读写直接对显

34、存进行操作。用户可以将FrameBuffer看成是显示内存的一个映像,将其映射到进程地址空间后,就可以直接进行读写操作,而写操作可以立即反映在屏幕上。FrameBuffer驱动主要基于以下两个文件:linux/include/linux/fb.h、linux/drivers/video/fbmem.c;其中,fb.h定义了几乎所有的重要结构,以下3个结构尤为重要:struct fb_info、struct fb_var_screeninfo、struct fb_fix_screeninfo;Linux帧缓冲设备定义了struct fb_info结构体作为驱动层的接口,fb_info记录了帧缓冲

35、的全部信息,包括设置参数、状态、操作函数指针等;每个帧缓冲设备均有一个fb_info结构体与之对应。struct fb_var_screeninfo和struct fb_fix_screeninfo是两个记录设备状态的结构体。3.3.2JXARM9-2410-1开发板Linux显示(FrameBuffer)驱动程序Linux内核启动时将自动加载定义在/linux/drivers/video/fbmem.c文件的FrameBuffer驱动,它是由一个全局变量fb_drivers定义的,所以将JXARM9-2410的显示驱动添加到fb_drivers中,以支持目标板FrameBuffer驱动。st

36、atic structconst char *name;int (* init)(void);int (* setup)(char *);fb_drivers_initdata=#ifdef CONFIG_FB_S3C2410 “s3c2410”,s3c2410fb_init,s3c2410fb_setup,#endif其中s3c2410fb_init是JXARM9-2410的FrameBuffer初始化函数,该函数由内核初始化时调用一次,它主要进行LCD相关硬件初始化以及注册FrameBuffer驱动程序等。JXARM9-2410-1开发板FrameBuffer驱动中重要的数据结构:stru

37、ct s3c2410fb_info、struct fb_var_screeninfo、struct fb_fix_screeninfo、struct file_operations s3c2410fb_ops对帧缓冲设备的操作是通过s3c2410fb_ops中的函数来实现的。3.3.3网络驱动Linux的网络系统主要是基于BSD Unix的socket机制。在系统和驱动程序之间定义有专门的数据结构(sk_buff)进行数据的传递。系统里支持对发送数据和接收数据的缓存,提供流量控制机制,提供多协议的支持。Linux中,有一个网络设备抽象接口,这个接口提供了对所有网络设备的操作方法。由以dev_b

38、ase为头指针的设备链表来集体管理所有网路设备,其中每个元素代表一个网络设备接口。该接口由数据结构struct device来表示网路设备在内核中的运行情况,所有的设备都由该结构描述并建立在统一的接口之上。这些设备既可以是纯软件的网络设备接口,也可以是具体的硬件网络设备接口。数据结构device中有很多访问网络设备的基本函数接口,包括提供设备初始化和系统注册用的init函数、打开和关闭网络设备的open和stop函数、处理数据包发送的函数hard_start_xmit以及中断处理函数等。4图形界面(MiniGUI)应用程序开发4.1MiniGUI简介MiniGUI是基于自由软件项目开发的一个轻

39、量级的图形用户界面支持系统,它为在资源紧缺的嵌入式系统中实现图形界面显示提供良好的支持。它的编程风格与在Windows环境下用API进行图形界面应用程序开发非常相似。详情见参考文献7。4.2MiniGUI的安装及配置4.2.1MiniGUI的安装1、安装libminiguiroot#mkdir /home/workroot#cd /home/work解压并安装libminigui-1.3.3.tar.gz库文件root#tar zxf libminigui-1.3.3.tar.gzroot#cd libminigui-1.3.3root#./configureroot#makeroot#mak

40、e install2、安装minigui资源文件解压并安装minigui-res-1.3.3.tar.gz资源文件root#tar zxf minigui-res-1.3.3.tar.gzroot#cd /home/work/minigui-res-1.3.3root#make installMiniGUI的默认安装路径为/usr/local/lib修改minigui.cfg文件,配置修改如下:system#GAL enginegal_engine=qvfb#IALengineial_engine=qvfbqvfbdefaultmode=800x600-16bpp3、安装qvfb,因为RedH

41、at9里面没有,从地址http:root#tar zxf qvfb-1.0.tar.gzroot#cd qvfb-1.0root#./configureroot#makeroot#make install把qvfb的安装路径加到可执行路径中去,qvfb装在/usr/local/bin下root#vi /etc/profile在#Path manipulation下面加一行pathmunge /usr/local/bin,保存退出。环境搭建好了,可以进行测试了:解压mg-samples-1.3.0.tar.gz,此包里包含的是一些例子:root#tar zxf mg-samples-1.3.0.

42、tar.gzroot#./configureroot#makeroot#cd src root#qvfb&在qvfb中选File-Configure:800x600 16bit(保持与MiniGUI中的qvfb配置一致。root#cd /home/work/mg-samples-1.3.0/srcroot#./helloworld可以看到在qvfb中的执行效果了。PC环境搭建好了,可以在PC上开发程序,编译并在qvfb中执行,等完全验证它是正确的了,把它交叉编译一下,放到目标板上去运行就可以了。4.2.2MiniGUI的本地运行环境设置MiniGUI默认配置实用NATIVE/FBCON图形引擎

43、,这个图形引擎是建立在Framebuffer基础上的,所以在Linux系统下使用MiniGUI要激活Framebuffer设备驱动程序。 root# cd /boot/grubroot# gedit menu.lst在Linux引导的选项中,在以“Kernel”开头的一行的最后添加“vga=0x0317”重新启动RedHat Linux9.0操作系统,倘若一切正常,在Linux内核引导过程中将会看到屏幕左上角出现一个企鹅图标。为了使MiniGUI应用程序能正确找到需要的MiniGUI函数库,需要设置系统的默认路径,即修改/etc/ld.so.conf文件,在此文件的最后一行增加目录“/usr/

44、local/lib”,然后保存文件。修改ld.so.conf后,需要使用ldconfig命令更新共享函数库系统的缓冲。使用命令:root#/sbin/ldconfig。4.3MiniGUI编程基础MiniGUI的程序入口点是MiniGUIMain()函数,它负责创建程序的主窗口,类似Windows程序中的WinMain()函数。详情见参考文献3。介绍一个简单的程序,程序运行结果如图4.3显示,其部分源代码如下:图4.3 MiniGUI程序示例/*界面布置*/static DLGTEMPLATE DlgAddSong = WS_BORDER | WS_CAPTION,WS_EX_NONE,0,0

45、,500,400,增加歌曲界面,0,0,19,NULL,0 ;static CTRLDATA CtrlAddSong =static,WS_VISIBLE | SS_SIMPLE,20,50,40,20,IDC_SNO,编号,0,WS_EX_NONE, edit,WS_VISIBLE | WS_BORDER | WS_TABSTOP,90, 50, 150, 25,IDC_ESNO,0,WS_EX_NONE,static,WS_VISIBLE | SS_SIMPLE,260, 50, 40, 20, IDC_SNAME,歌名,0,WS_EX_NONE, edit,WS_VISIBLE | WS_BORDER | WS_TABSTOP, 330, 50, 150, 25,IDC_ESNAME,0,WS_EX_NONE,static,WS_VISIB

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号