Windows数据类型与API函数(MessageBox函数 和 ReadFile函数)

原创 2016年08月31日 10:01:34

所有的Windows数据类型都是大写的

所有的Windows API函数 大量地使用了Windows数据类型


这里以这两个函数为例,它们的返回值和参数都大量地使用了Windows数据类型

所有的Windows API函数都有W版和A版(后面会学到)

先来看MessageBoxW函数

四个参数:

1. 表示Message窗口的所有者 , 如果填 NULL 就代表它的所有者是桌面

2. 填消息的内容,类型是 LPCWSTR

3. 填消息框的标题,类型是 LPCWSTR

4. MB_OK表示一个按钮

红色圈出的地方是自己加上去的内容





而把第一个参数设成NULL是一个不好的选择,应该把它设置成当前窗口   所以这里我们找到

//
//   函数:  InitInstance(HINSTANCE, int)
//
//   目的:  保存实例句柄并创建主窗口
//
//   注释: 
//
//        在此函数中,我们在全局变量中保存实例句柄并
//        创建和显示主程序窗口。
//
BOOL InitInstance(HINSTANCE hInstance, int nCmdShow)
{
   HWND hWnd;

   hInst = hInstance; // 将实例句柄存储在全局变量中

   hWnd = CreateWindow(szWindowClass, szTitle, WS_OVERLAPPEDWINDOW,
      CW_USEDEFAULT, 0, CW_USEDEFAULT, 0, NULL, NULL, hInstance, NULL);

这边,把 
   HWND hWnd;
变成全局变量,然后把 hWnd代入第一个参数  就ok啦


下面是ReadFile函数

功能是 读取文件内容

参数含义:

1. 这个文件的句柄

2. 缓存区,都出来的内容就在这里(是个字符数组)    因为不可能一次性全部都出来,我们要指定每次读多少个

3. 因为不可能一次性全部都出来,我们要指定每次读多少个

4. 实际读取的字节数

5. NULL

首先,我们要用 CreateFile去打开这个文件   这又是一个API函数

#include <stdio.h>
#include <Windows.h>
#define BUF_SIZE 256
int main()
{
	HANDLE hFileRead;
	DWORD nIn;
	CHAR buffer[BUF_SIZE];

	hFileRead = CreateFile("aaa.txt",
		GENERIC_READ,//表示我们去读这个文件
		FILE_SHARE_READ,//指定如何共享这个文件,这里是共享读
		NULL,//文件的安全属性,我们用NULL表示默认的安全属性
		OPEN_EXISTING,//代表打开已经存在的,而不是创建新的文件
		FILE_ATTRIBUTE_NORMAL,//文件的属性,这里是常规属性
		NULL);//要指定模板,这里没有模板
		

	//打开文件,得到一个句柄,而打开文件可能会出错,我们下面要检查这个句柄,如果是无效句柄,就是出错了
	//那么发生了什么错误,可以通过一个API函数(GatLastError),来获取错误信息
	if (hFileRead == INVALID_HANDLE_VALUE)//如果这个句柄是一个无效的句柄,就说明文件打开出错
	{
		printf("Cannot open file   Error: %x\n", GetLastError());
		system("pause");
		return -1;
	}

	//如果没有出错,我们就可以读取这个文件
	while (ReadFile(hFileRead, buffer, BUF_SIZE, &nIn, NULL) && nIn > 0)
	{
		printf("%s\n", buffer);
	}

	CloseHandle(hFileRead);
	system("pause");
}

版权声明:本文为博主原创文章,如能转载,不胜荣幸。

Windows数据类型与API函数(MessageBox函数 和 ReadFile函数)

所有的Windows数据类型都是大写的 所有的Windows API函数 大量地使用了Windows数据类型 这里以这两个函数为例,它们的返回值和参数都大量地使用了Windows数据类型 ...
  • x_y_q_
  • x_y_q_
  • 2016年08月31日 10:01
  • 472

Windows数据类型

一、基础类型 (Windows中源代码:) typedef unsigned long       DWORD; typedef int                 BOOL;   //TRUE、...
  • liyuqian199695
  • liyuqian199695
  • 2015年11月25日 22:28
  • 184

Windows API一日一练(4)MessageBox函数

为了显示提示信息给用户,Windows是提供了一个非常方便的API函数MessageBox给用户使用,使用这个API函数可以显示简单的文字信息出来,提醒或提示用户进行下一步操作。函数声明如下:WINU...
  • caimouse
  • caimouse
  • 2007年07月09日 13:10
  • 12686

Windows API一日一练(54)WriteFile和ReadFile函数

读写文件是每个Windows软件开发人员都需要做的工作。可见这项工作是非常重要的,毕竟各种各样的数据都需要保存起来,以便作各种各样的分析,或者通过网络传送给别人。像大家用BT下载的电影,在那个BT软件...
  • caimouse
  • caimouse
  • 2007年10月21日 10:09
  • 68173

WINDOWS数据类型

ATOM                   原子(原子表中的一个字符串的参考) BOOL                   布尔变量 BOOLEAN                布尔变量 BYT...
  • sgdgoodboy
  • sgdgoodboy
  • 2007年12月18日 10:23
  • 628

简要的Windows API函数大全

1. API之网络函数 WNetAddConnection 创建同一个网络资源的永久性连接 WNetAddConnection2 创建同一个网络资源的连接 WNetAddConnection3 ...
  • u010011052
  • u010011052
  • 2016年04月26日 11:56
  • 952

由MessageBox透视Win32 API的调用

下面我们来看看Windows平台下应用程序是怎么调用Windows提供的底层API服务运行的。 我们编写Win32SDK程序时,需要弹出对话框以作出友好的选择,MessageBox这个API函数就可...
  • Sun19910114
  • Sun19910114
  • 2014年08月23日 17:00
  • 1083

ReadFile 函数

函数原型   BOOL ReadFile(  HANDLE hFile, //文件的句柄  LPVOID lpBuffer, //用于保存读入数据的一个缓冲区  DWORD nNumberOfByte...
  • haitaofeiyang
  • haitaofeiyang
  • 2010年05月10日 11:47
  • 13608

精通WindowsAPI 函数 接口 编程实例

  • 2010年01月08日 17:33
  • 13.35MB
  • 下载

Windows编程 Win32API中常见的数据类型

Win32API有一套和C\C++基本数据类型不同的数据类型. C\C++语言的数据类型有如下几个缺陷: 数据类型平台相关,在不同平台上,同一个数据类型可能占用不同的空间大小。典型的,在16位系...
  • RitMan
  • RitMan
  • 2015年12月31日 15:20
  • 2445
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Windows数据类型与API函数(MessageBox函数 和 ReadFile函数)
举报原因:
原因补充:

(最多只允许输入30个字)