初次使用microwindows,资料有限,我也是费了很多功夫才明白.所以记录下来,好帮助那些爱学习的童鞋,另外请大虾们多多指教.

什么是microwindows,什么作用,等背景介绍我就不多说了,因为你准备写代码之前,一定研究过了.

下面直接进入主题,如何把源文件编译成lib,写自己的代码,make自己代码,运行等.

环境及版本说明:

Ubuntu 11.04

microwindows-0.92

如何编译源文件:

1- 从网站下载源文件

ftp://microwindows.org/pub/microwindows/microwindows-full-0.92.tar.gz

tar zxvf microwindows-full-0.92.tar.gz
cd microwindows-0.92/src

有3个文件

README  //打开文件第一句就说明 "To build Nano-X/Microwindows, see src/INSTALL and src/CONTENTS." 说明很重要,想要编译通过,一定要详细读.

doc     // 相关文档

src     //源文件

cd src
./xconfigure

环境,编译变量配置.

开始编译源文件:

make

如果编译报错,其主要原因一定是缺少lib库,请查看 src/INSTALL文件,其中包含

. Edit the default configuration file "config", if desired.
There are pre-built configuration files for X11, framebuffer,
and a variety of target systems, see Configs/README. The default configuration is for framebuffer (Configs/config.fb2)
Type "cp Configs/config.x11 config" for the X11 configuration. See CONTENTS and Configs/README for more information.

根据提示读src/CONTENTS文件,其中包含

EXTERNAL REQUIRED LIBRARIES (when configured to use them, latest tested version)
freetype-2.3..tar.gz libfreetype.so - freetype font engine
freetype-1.3..tar.gz libttf.so - freetype font engine
jpegsrc.v6b.tar.gz libjpeg.a - JPEG image library
png-1.2..tar.gz libpng.a - PNG image library
zlib-1.2.3.3.tar.gz libz.a - compression lib for loadable pcf.gz fonts/png files
t1lib-5.1..tar.gz libt1.a - T1 font engine (requires T1LIB_CONFIG=microwin/src/fonts/t1lib/config.t1lib)

以上lib库最好都安装,或者选择自己需要的安装,配合上面./xconfigure的配置

编译通过之后,试运行源文件自带的demo

cd bin
./mtest2

如何写自己代码

我一直在看源文件自带的.src/demos/mwin的代码,由于win32函数参数很多,而且事件驱动开发,导致看完也很渺茫,如何写呢.所以建议初学者先翻阅下此书forgers-win32-tutorial_zh_CN.pdf,找了很多这本入门还不错,很清晰.

Demo功能说明:

用户登录窗口,输入用户名,密码.与文件中存储内容校验,如果相等,则提示"登录成功",否则提示"是否需要新建用户",点击"否"退出messageBox,点击"是"新建用户.内容追加写入文件.

开始写代码:

cd demos/mwin/
vi login_main.c

代码就不在这里体现了,可直接访问:

https://github.com/galoishelley/microwindows 

userinfo.pwd 文件格式为: userName|userPwd  eg: testlogin|abc123

其实microwindows win32API 就是windows 下得API.

如何编译自己代码

开始修改原代码中自带的Makefile

由于程序在/microwindows-0.92/src/demos/mwin目录,所以修改此目录的Makefile文件

修改Makefile文件很简单,不用都看懂,找程序自带的例子mtest2如何写的,你照搬就好.

ifeq ($(ARCH), PSP)

DEMOS = $(MW_DIR_BIN)/mdemo\
$(MW_DIR_BIN)/malpha\
$(MW_DIR_BIN)/mtest\
$(MW_DIR_BIN)/mtest2\
$(MW_DIR_BIN)/mine else DEMOS = $(MW_DIR_BIN)/mdemo\
$(MW_DIR_BIN)/malpha\
$(MW_DIR_BIN)/mtest\
$(MW_DIR_BIN)/mtest2\
$(MW_DIR_BIN)/mine\
$(MW_DIR_BIN)/login_main

修改完Makefile可以编译了

cd /microwindows-.92/src
make

如果不成功,也是自己写的程序问题,可以调试.

如何运行自己写的代码

cd /microwindows-.92/src/bin
./login_main

由于microwindows win32API支持的控件特别少,所以MessageBox都是自己实现的.代码中为MessageBoxC

MessageBox

参考资料:

http://microwindows.org/

read-only access to git repository:

git clone https://github.com/galoishelley/microwindows 

microwindows Win32 API demo的更多相关文章

  1. 【Win32 API】利用SendMessage实现winform与wpf之间的消息传递

    原文:[Win32 API]利用SendMessage实现winform与wpf之间的消息传递 引言    有一次心血来潮,突然想研究一下进程间的通信,能够实现消息传递的方法有几种,其中win32ap ...

  2. 初次认识 C# win32 api

    第一次接触win32api,刚开始的时候有点迷迷糊糊的. Windows API 就是windows应用程序接口. win api向上就是windows应用程序,向下就是windows操作系统核心. ...

  3. Serial Port Programming using Win32 API(转载)

    In this tutorial we will learn How to communicate with an external device like a microcontroller boa ...

  4. 从.NET平台调用Win32 API

    MSDN文章<Microsoft Win32 to Microsoft .NET Framework API Map> 介绍了.net 类库对win32的封装 从.NET平台调用Win32 ...

  5. 【温故Delphi】GAEA用到Win32 API目录

    Delphi是Windows平台下著名的快速应用程序开发工具,它在VCL中封装并使用了大量的Win32 API. GAEA基于VCL开发的工具类产品,在程序中使用了大量的Win32 API,将经常用到 ...

  6. 【C#】分享基于Win32 API的服务操作类(解决ManagedInstallerClass.InstallHelper不能带参数安装的问题)

    注:这里的服务是指Windows 服务. ------------------201508250915更新------------------ 刚刚得知TransactedInstaller类是支持带 ...

  7. C#中导入Win32 API函数

    C#中导入Win32 API的方法: 1.引用命名空间 using System.Net.Security; using System.Runtime.InteropServices; 2. [Dll ...

  8. MSIL 教程(二):数组、分支、循环、使用不安全代码和如何调用Win32 API(转)

    转自:http://www.cnblogs.com/Yahong111/archive/2007/08/16/857574.html 续上文[翻译]MSIL 教程(一) ,本文继续讲解数组.分支.循环 ...

  9. C#调用Win32 api学习总结

    从.NET平台调用Win32 API Win32 API可以直接控制Microsoft Windows的核心,因为API(Application Programming Interface)本来就是微 ...

随机推荐

  1. 添加jar

    file->project structure->'+'添加jar 在.gradle中配置

  2. Python之路第十二天,高级(5)-Python操作Mysql,SqlAlchemy

    Mysql基础 一.安装 Windows: 1.下载 http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.31-winx64.zip 2.解压 ...

  3. 使用SC命令时注意事项

    使用SC命令时注意事项[转] Windows 2003 Server存在一个sc命令,(好像Windows 2000/XP/NT都有这个.)该命令可以手工创建Windows服务(NT Service) ...

  4. Eclipse中设置条件断点

    1.在要添加断点的变量那一行前双击,添加断点: 2.在该断点处点击鼠标右键,在弹出的选项卡中选择“断点属性”Breakpoint Properties; 3.在断点属性选项卡中勾选Enabled复选框 ...

  5. 在wpf中如何让MediaElement的视频循环播放

    原文:在wpf中如何让MediaElement的视频循环播放 MediaElement原始的播放是只播放一遍:如何设置让MediaElement播放 的视频或者音频循环播放,解决如下: 修改Media ...

  6. Windows搭建Sublime Text 3 + Go开发环境

    1. 安装Sublime Text 3 Sublime Text 3(以下简称ST)的下载与安装我就不说啦,目前还是一个测试版,不过据说比ST2增加了好多新功能,下载地址: http://www.su ...

  7. Oracle 唯一主键引发的行锁

    SQL> create table test(id int PRIMARY KEY, name char(10)); 表已创建. Session 1: SQL> select * from ...

  8. web前端设计:JQuery MINI UI

    JQuery MINIUI 个人感觉用起来很爽,所以在此记录之,以后开发过程可能作为备选项.它能缩短开发时间,减少代码量,使开发者更专注于业务和服务端,轻松实现界面开发,带来绝佳的用户体验.在线下载地 ...

  9. 【转】【漫画解读】HDFS存储原理

    根据Maneesh Varshney的漫画改编,以简洁易懂的漫画形式讲解HDFS存储机制与运行原理. 一.角色出演 如上图所示,HDFS存储相关角色与功能如下: Client:客户端,系统使用者,调用 ...

  10. SQL Server 中使用参数化Top语句

    在T-Sql中,一般top数据不确定的情况下,都是拼sql,这样无论是效率还是可读性都不好.应该使用下面参数化Top方式:declare @TopCount int set @TopCount = 1 ...