双11狂欢大促

盲盒赢 定制羽绒服

开启惊喜盲盒,抽取你的专属好礼

— 惊喜奖品抢先看 —

关于SOCKADDR_STORAGE的问题

dwen20 dwen20 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
最近在学windows网络编程,用了Network Programming for Microsoft Windows 2nd的配套光盘调试。
问题出在chapter05中的WSAASyncSelect目录

我直接用VS2008 Professional的Nmake程序编译该目录下的makefile文件,提示错误,主要是SOCKADDR_STORAGE结构无
法识别,但是查Msdn说这个结构是包含在Winsock2.h中的,其实是在ws2def.h文件中声明,只不过ws2def.h
被include进了winsock2.h文件中,不过程序里明明是包含了这个winsock2.h文件的,怎么会找不到呢?
主要的源文件头文件包含顺序如下:
#include <winsock2.h>
#include <ws2tcpip.h>
#include <windows.h>
#include <stdio.h>
#include <stdlib.h>

不知道是否和彼此的顺序有关。
makefile文件内容如下:
!include <win32.mak>

objs=asyncserver.obj resolve.obj

all: asyncserver.exe

.cpp.obj:
$(cc) $(cdebug) $(cflags) $(cvarsmt) $*.cpp

asyncserver.exe: $(objs) $(common_objs)
$(link) $(linkdebug) $(conlflags) -out:asyncserver.exe $(objs) $(conlibsmt) ws2_32.lib user32.lib gdi32.lib

clean:
del *.obj
del *.exe
del *.pdb


请高手赐教
...全文

相关推荐

评论 3
收藏 已收藏
分享
返回顶部
dwen20
网络编程 18,356 成员 64,161 内容