windows应用程序开发笔记一:windows应用程序介绍

Win32编程系列一  

一、创建一个工作区

工作区就是用来存放程序员项目的地方,在菜单中按如下方式依次点击:file->new->Workspace标签,然后Location文本框中输入你要创建的工作区的位置,我这里将我的工作区目录设置为F:\WIN32R,然后给自己的工作区起个名字,我这里取名day01

二、windows 开发用到的头文件和windows开发用到的库文件简单介绍

Windows库和头文件

- Windows库

     kernel32.dll - 提供了核心的API,例如进程、线程、内存管理等。

   user32.dll - 提供了窗口、消息等API

   gdi32.dll  - 绘图相关的API

-头文件

    windows.h - 所有windows头文件的集合

    windef.h - windows数据类型

    winbase.h - kernel32的API

    wingdi.h - gdi32的API

    winuser.h - user32的API

    winnt.h - UNICODE字符集支持

 三、一个简单的windows窗口程序

先不管这个窗口程序是怎么实现的,照着书本炒一个简单的windows窗口程序,这个窗口程序只弹出来一个对话框,在对话框上显示一串"welcome to the world of windows!"文字。写这个程序之前对用到的两个函数做个简单介绍。

int WINAPI WinMain(

        HINSTANCE hInstance,//当前程序的实例句柄,凭借这个参数可以找到内存中关于窗口的数据,比如位置,宽高

HINSTANCE hPrevInstance, //当前程序前一个实例句柄

LPSTR lpCmdLine,//命令行参数字符串

int nCmdShow //窗口的显示方式,

);

注:hPrevInstance - Win32下,一般为NULL


int MessageBox(

HWND hWnd,//父窗口句柄

LPCTSTR lpText, //显示在提示框中的文字

LPCTSTR lpCaption,  //显示在标题栏中的文字

UINT uType //提示框中的按钮、图标显示类型。肯定有人有疑问,一个参数如何指定按钮的个数,图标,其实查看msdn,可以发现这个参数有很多值来指定要显示的按钮,图标,并以位或的形式指定多种方式。

);// 返回值为点击的按钮ID

下面是完整的代码:

#include "stdafx.h"

int APIENTRY WinMain(HINSTANCE hInstance,
                     HINSTANCE hPrevInstance,
                     LPSTR     lpCmdLine,
                     int       nCmdShow)
{
 	MessageBox(NULL,"welcome to the world of windows!","info",MB_OK);
	return 0;
}

下面是完整的截图:


四、编译环境的配置

注意这是手工在DOS界面进行程序编译连接的环境配置,一般不用,但是还是值得说一下,用一个简单的例子说明

1 用记事本编写一个hello.txt文件,内容如下

#include "windows.h"

int WinMain(HINSTANCE hIns,HINSTANCE hPrev,LPSTR lpCmdLine,int nCmdShow)

{

MessageBox(NULL,"hello world","info",MB_ABOUTRETRYIGNORE|MB_ICONQUESTION);

}

2 将hello.txt的后缀改为.c,即hello.c

3 打开DOS窗口,具体的方法是,依次点击“开始->运行”,然后输入cmd,回车,DOS窗口打开了。

4 在命令行键入 CL.EXE /?命令,这一句命令表示打印CL.EXE命令的信息,如果环境配置正确,那么DOS窗口中会输出很多信息,如下图

如果报错,将路径C:\Program Files\Microsoft Visual Studio\VC98\Bin\VCVARS32.BAT的批处理文件copy一份到你自己的工作区文件夹,我的工作区位置为:f\win32r\day01,

a 然后在终端窗口切换到你的工作区目录,执行刚刚拷过来的批处理文件,具体如下(我这里以我的路径为例),依次键入:f  ->  cd win32r  ->  cd day01  ->  VCVARS32.BAT

b 最后在命令终端执行 CL.EXE /?命令,看是否正常

执行命令CL.EXE /c hello.c(表示只编译不连接)

如果执行正确,那么生成hello.obj,接下来连接WinMain()和MessageBox()这两个函数所在的库(共有三个库user32.dll,gdi32.dll,kernel32.dll)

执行命令LINK.EXE hello.obj user32.lib(连接命令) 

执行成功就会生成一个hello.exe文件。

双击执行hello.exe文件,就会弹出来一个MessageBox对话框,这个对话框如果不点击按钮,就会一直存在,专业名词就是阻塞,这个函数是一个阻塞函数。点击之后,该函数返回被点击按钮的ID。


 


如果报错,将路径C:\Program Files\Microsoft Visual Studio\VC98\Bin\VCVARS32.BAT

的批处理文件copy一份到你自己的工作区文件夹,我的工作区位置为:f\win32r\day01,然后在终端窗口依次键入:f->cd win32r->cd day01->VCVARS32.BAT,问题解决。

再在命令终端执行 CL.EXE /?命令,这条命令的意思是打印CL.EXE这个命令的信息。

CL.EXE /c hello.c(只编译不连接)

如果执行正确,那么生成hello.obj,接下来连接WinMain()和MessageBox()这两个函数所在的库(共有三个库user32.dll,gdi32.dll,kernel32.dll)

LINK.EXE hello.obj user32.lib 

执行成功就会生成一个hello.exe文件。双击执行hello.exe文件,就会弹出来一个MessageBox对话框,这个对话框如果不点击按钮,就会一直存在,专业名词就是阻塞,这个函数是一个阻塞函数。点击之后,该函数返回被点击按钮的ID。

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值