初次使用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. yii2 改变首页,变成登录页

    在main.php中添加'defaultRoute'=>'site/login',//默认路由,控制显示的第一个页面,控制器+方法

  2. 如何调用EcStore中的API接口

    EcStore系统已内置了丰富的API接口供外部系统调用(接口列表见文章最下面),外部系统具体如何调用这些API呢? 例如有一个PHP的论坛需要调用ecstore系统内一个商品的详情,则可以使用b2c ...

  3. bootstrap的datetimepicker控件只选择年月的配置

    <script src="{% static "jquery/jquery-1.11.3.min.js" %}"></script> & ...

  4. wordpress教程之get_posts()

    get_posts 介绍 June 3rd 2012 评论(16) get_posts 函数,简单的来讲是 get_post 的复数新形势,但因为是文章多篇提取,所以使用方法上却略有不同,支持众多参数 ...

  5. 使用achartengine实现自定义折线图 ----附代码 调试OK

    achartengine作为android开发中最常用的实现图标的开源框架,使用比较方便,参考官方文档谢了如下Demo,实现了自定义折线图. package edu.ustb.chart; impor ...

  6. [置顶] SPL讲解(7)--Query高级篇

    SmartPersistenceLayer 2.0 之Query高级查询篇 总述 在看了前面的功能后,大家都会考虑到多表之间的查询怎么办.在这里,我想先讲一下查询在应用系统中的复杂性/重要性/可行性. ...

  7. 场景2 nginx 错误日志格式:

    nginx 错误日志格式: 2016/09/01 11:23:36 [error] 28388#0: *14549 open() "/var/www/zjzc-web-frontEnd/im ...

  8. MyCat 介绍、分片规则、调优的内容收集

    一.MyCat的简介 MyCat高可用.负载均衡架构图: 详细知识点:  MySQL分布式集群之MyCAT(一)简介(修正) 二.MyCat的schema.xml讲解 详细知识点:MySQL分布式集群 ...

  9. 【Java面试】基础知识篇

    [Java面试]基础知识篇 Java基础知识总结,主要包括数据类型,string类,集合,线程,时间,正则,流,jdk5--8各个版本的新特性,等等.不足的地方,欢迎大家补充.源码分享见个人公告.Ja ...

  10. python2 和3的区别

    __future__ 模块 Python 3.x引入一些Python2不兼容的关键字和函数,可以通过在 Python2 内置的模块 __future__ 导入.建议如果你想在代码中支持 Python3 ...