Windows开发
1. 介绍
这里简单介绍了Windows应用程序开发的基础知识
2. 基础
Windows下的应用程序有控制台程序和Win32窗口程序,这里讲的是Win32窗口程序
Windows提供了相关静态库(LIB)和动态库(DLL)供程序使用
- 控制台 main
- Win32 WinMain
- DLL DllMain
- LIB 无
2.1 编译环境
CL.EXE: 编译器, 将源代码编译生成目标文件OBJ
LINK.EXE 链接器, 将OBJ文件和库函数链接生成EXE
RC.EXE 资源编译器,将资源脚本编译生成RES文件
2.2 头文件
windows.h包含了常用的定义和一些其他的头文件
windef.h - 定义了各种的数据类型
winbase.h - 定义了kernel的相关函数
wingdi.h - 定义了绘图和文字
winuser.h - 窗口 控件等函数
winnt.h - 提供Unicode支持
2.3 相关库
kernel32.lib - 提供进程/线程/内存函数
user32.lib - 包括窗户/界面等等
gdi32.lib - 提供绘图/文字等
3. 开发
使用Windows API开发的步骤为
设计窗口类: WNDCLASS
注册窗口类: RegisterClass
创建窗口类: CreateWindow
显示窗口类: ShowWindow
更新窗口类: UpdateWindow
消息循环: ......
更多Windows API相关内容可以参考:
<Windows常用API>
<Windows系统消息>
<Win32窗体开发主要流程>
<Windows系统消息之键鼠消息>
参考:
<GnuWin>
<Win32编程>
<Windows API Index>
<跟我一起玩Win32开发>
<Win32 API Programming Tutorial>
Windows开发的更多相关文章
- 【windows开发实现记事本程序——逻辑篇1】
1. 主要内容 从本节开始介绍windows开发实现记事本程序的逻辑实现部分.本节的主要内容有以下3点: 1. 主窗口定义 -- 主要介绍记事本主界面窗口对应的窗口类及实现方案 2. RichEdi ...
- Windows开发中一些常用的辅助工具
经常有人问如何快速的定位和解决问题,很多时候答案就是借助工具, 记录个人Windows开发中个人常用的一些辅助工具. (1) Spy++ 相信windows开发中应该没人不知道这个工具, 我们常用 ...
- Spark+ECLIPSE+JAVA+MAVEN windows开发环境搭建及入门实例【附详细代码】
http://blog.csdn.net/xiefu5hh/article/details/51707529 Spark+ECLIPSE+JAVA+MAVEN windows开发环境搭建及入门实例[附 ...
- 虚拟机运行docker后映射端口到windows开发机
1.运行容器(以Oracle-xe-11g为例) 运行容器时先在虚拟机内映射端口 docker run -d -p 9090:8080 -p 1521:1521 wnameless/oracle-xe ...
- gcc for Windows 开发环境介绍
导读: 在Windows操作系统下的gcc 第一节 GCC家族概览 GCC是一个原本用于Unix-like系统下编程的编译器. 只是,如今GCC也有了很多Win32下的移植版本号.所以,或许对于很多W ...
- 我的windows开发环境设定与日常使用指南
目录 开发相关的软件包安装.设定 Visual Studio 默认设定 鼠标右键添加"在此处打开cmd"选项 git gvim notepad++ VSCode-Insider C ...
- (二)react-native开发系列之windows开发环境配置
之前写了react-native在mac上得环境搭建,但是如果只开发android的话,只要用windows系统就可以了,下面就来说下react-native的windows开发环境配置. 1.下载配 ...
- 2017 CVTE Windows开发一面 3.7
下午3点接到了个广州打过来的电话,电话面试总体时间比较短,35分钟. 考察内容: 1.讲实习: 因人而异,将了之前公司做的项目,刚好和面的岗位匹配,面试官听完之后还不忘垂壁一下他们的产品. 2.C#事 ...
- Windows开发常用快捷键
毕业后一直在从事Windows开发工作,掌握些常用的Windows快捷键可以大大的提升工作效率,同时还能秀一波操作.本文记录在工作中常用的Windows快捷键,以及VS常用快捷键.掌握了这些键盘操作, ...
- react native windows开发环境搭建(一)
ReactNative分为服务器端和手机端loader程序,Android版有3种代码:js代码,java代码和c++代码,主要是编写的是js代码,如果框架功能不足就需要编写原生的java代码来扩展, ...
随机推荐
- vue插件库
各种vue插件,各种有,总有一款适合你! github地址:https://github.com/opendigg/awesome-github-vue
- CSS 实现单行、多行文本溢出显示省略号
单行溢出 width:200px; overflow:hidden; text-overflow:ellipsis; -o-text-overflow:ellipsis; -webkit-text-o ...
- STM32串口——中断方式的一般配置方法
#include "stm32f10x.h" /************************************************ 该程序讲解串口程序的一般配置方法: ...
- Unidirectional TSP UVA - 116 多段图的最短路
题目:题目链接 思路:从后往前进行dp,用next数组记录字典序最小的那一条路径 AC代码: #include <iostream> #include <cstdio> #in ...
- [Poj3281]Dining(最大流)
Description 有n头牛,f种食物,d种饮料,每头牛有nf种喜欢的食物,nd种喜欢的饮料,每种食物如果给一头牛吃了,那么另一个牛就不能吃这种食物了,饮料也同理,问最多有多少头牛可以吃到它喜欢的 ...
- Kubernetes配置Ceph RBD StorageClass
1. 在Ceph上为Kubernetes创建一个存储池 # ceph osd pool create k8s 2. 创建k8s用户 # ceph auth get-or-create client.k ...
- GBDT算法简述
提升决策树GBDT 梯度提升决策树算法是近年来被提及较多的一个算法,这主要得益于其算法的性能,以及该算法在各类数据挖掘以及机器学习比赛中的卓越表现,有很多人对GBDT算法进行了开源代码的开发,比较火的 ...
- Eclipse配置Maven工具
1.Maven安装,下载Maven二进行制文件: http://maven.apache.org/download.cgi 下载后解压,然后设置maven的bin目录到系统环境变量Path中,在cmd ...
- 66、fastJson 解析json数据时,如果key值不同怎么处理?
在某些场景,你可能需要定制序列化输出,比如说,希望序列化采用之后采用"ID",而不是"id",你可以使用@JSONField这个Annotation. publ ...
- centos php环境搭建
CentOS 6.5系统安装配置LAMP(Apache+PHP5+MySQL)服务器环境 准备篇: 1.配置防火墙,开启80端口.3306端口vi /etc/sysconfig/iptables-A ...