MAKEIPADDRESS 并不是一个 Win32 API 函数,而是一个宏(macro),通常用于在 Windows 控件中处理 IP 地址。它用于将四个字节的 IP 地址部分组装成一个 DWORD 类型的值,以便在 IP 地址编辑框等地方使用。

该宏的定义通常在 Commctrl.h 头文件中,以下是它的定义:
#define MAKEIPADDRESS(b1,b2,b3,b4) (DWORD)(((DWORD)(b1)<<24)|((DWORD)(b2)<<16)|((DWORD)(b3)<<8)|((DWORD)(b4)))

宏接受四个字节作为参数(通常是 0 到 255 之间的整数),将它们合并成一个 32 位的 DWORD,其中每个字节分别对应 IP 地址的四个部分。

以下是一个使用 MAKEIPADDRESS 宏的示例:
#include <Commctrl.h>

// 假设有四个变量 b1、b2、b3、b4 分别表示 IP 地址的四个部分
BYTE b1 = 192, b2 = 168, b3 = 1, b4 = 1;

// 使用 MAKEIPADDRESS 宏将四个字节合并为一个 DWORD
DWORD ipAddress = MAKEIPADDRESS(b1, b2, b3, b4);

// 将合并后的 DWORD 设置到 IP 地址编辑框中
SendMessage(hwndIPAddress, IPM_SETADDRESS, 0, (LPARAM)ipAddress);

在这个例子中,MAKEIPADDRESS 宏将四个字节的 IP 地址部分合并成一个 DWORD 类型的值,然后将这个值设置到 IP 地址编辑框中。


转载请注明出处:http://www.zyzy.cn/article/detail/24773/Win32 API/Commctrl.h/MAKEIPADDRESS