windwos 基本数据结构

本文介绍了Windows编程中的几个关键概念,包括无类型指针LPVOID、泛指本机IP地址的INADDR_ANY及其在网络编程中的应用、OVERLAPPED结构体在异步I/O中的作用,以及获取系统路径的实用函数如GetTempPath、GetTempFileName和GetSystemDirectory。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.数据结构

LPVOID :一个没有类型的指针   typedef void far *LPVOID

2.windows·网络编程

INADDR_ANY :地址为0.0.0.0的地址

转换过来就是0.0.0.0,泛指本机的意思,也就是表示本机的所有IP,因为有些机子不止一块网卡,多网卡的情况下,这个就表示所有网卡ip地址的意思。
一台电脑有3块网卡,分别连接三个网络,这台电脑就有3个ip地址,某个应用程序需要监听某个端口,如果绑定某个具体的ip地址,你只能监听你所设置的ip地址所在的网卡的端口,其它两块网卡无法监听端口,如果我需要三个网卡都监听,那就需要绑定3个ip,也就等于需要管理3个套接字进行数据交换,这样会很繁琐,所以这种情况可以绑定INADDR_ANY 来监听本机所有ip端口。

OVERLAPPED:是一个包含了用于异步输入输出的信息的结构体

3.

GetTempPath函数

功能 获取为临时文件指定的路径

API中函数原形为: DWORD GetTempPath(DWORD nBufferLength, LPTSTR lpBuffer)  

参数:  

StrLen = GetTempPath(NAME_LEN, OutPath)  

其中:  

OutPath:是输出临时文件夹名称的变量,它的初始值为NAME_LEN个空格,函数调用后,就不是空格了,它会把取得的临时文件夹名称存入此变量。  

NAME_LEN:是告诉函数OutPath变量的长度。  

StrLen:是取得的临时文件夹名称的长度。

返回值  Long,装载到lpBuffer的字符数。如当前缓冲区的长度不够,不能容下整个路径,则返回lpBuffer需要的长度。

           零表示失败。会设置GetLastError

GetTempFileName函数

这个函数包含了一个临时文件的名字,它可由应用程序使用

UINT GetTempFileName(

  PChar lpPathName:;     {路径}

  PChar lpPrefixString:;   {前缀}

  UINT uUnique:;         {指定生成文件名的数字,文件名将根据参数2、参数3来生成}

  PChar   lpTempFileName: {文件名需要的缓冲区}

) {指定生成文件名的数字,如果参数3是0,则返回文件名长度}

GetWindowsDirectory函数与GetSystemDirectory函数用法一样

GetWindowsDirectory是获取Windows文件夹的路径。GetSystemDirectory是获取systrm32文件夹的路径

下面是讲解GetSystemDirectory函数

GetSystemDirectory 函数

获取systrm32文件夹的路径。系统文件夹包含了诸如动态链接库和驱动的系统文件。

该函数最初是为了兼容问题而提供的。应用程序应该在Program File文件夹内存储代码和常驻数据。

UINT WINAPI GetSystemDirectory(

__out  LPTSTR lpBuffer,

__in   UINT uSize

);

参数  

lpBuffer String,用于装载系统目录路径名的一个字串缓冲区。它应事先初始化成“路径”字符串的长度+1。

              通常至少要为这个缓冲区分配MAX_PATH个字符的长度  

nSize Long,lpBuffer字串的最大长度

返回值

如果函数成功,返回值是缓冲内容副本的长度,但该长度不包含结尾的NULL字符。如果该长度大于给定的长度,则返回值是所需的缓冲大小,且包含结尾的NULL字符。

如果函数失败,返回零值。

备注

应用程序不应该在系统目录内创建文件。如果用户运行在一个共享版本的Windows操作系统上,应用程序是不能访问系统目录的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值