WSASocket 链接错误

银点 2009-12-17 05:18:53
有人说要这样:

implib ws2_32.lib c:\winnt\system32\ws2_32.dll
或者 implib ws2_32.lib c:\windows\system32\ws2_32.dll
再在你的工程里加入ws2_32.lib
另外头文件应该用 #include <winsock2.h>

我也这样做了,可还是不行。
...全文
165 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
银点 2009-12-18
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 lipei1220 的回复:]
把你调用WSASocketA 的这段代码贴上来瞧瞧
[/Quote]
//TODO: Add your source code here
if(WSAStartup(MAKEWORD(2,2),&wsd) !=0)
{
MessageBox(NULL,"WSAStartup()初始化失败","系统提示",MB_OK);
return false;
}

//构造socket 在Winsock 2 中必须声明多播属性;
if((sock=WSASocket(AF_INET,SOCK_DGRAM,0,NULL,0,WSA_FLAG_MULTIPOINT_C_LEAF
| WSA_FLAG_MULTIPOINT_D_LEAF| WSA_FLAG_OVERLAPPED)) == INVALID_SOCKET)
{
MessageBox(NULL,"WSASocket()失败","系统提示",MB_OK);
WSACleanup();
return false;
}
dns007 2009-12-18
  • 打赏
  • 举报
回复
把你调用WSASocketA 的这段代码贴上来瞧瞧
银点 2009-12-18
  • 打赏
  • 举报
回复
可是我依然连接错误
zhgwbzhd 2009-12-18
  • 打赏
  • 举报
回复
加到工程,当然可以啊。

那只要声明 头文件即可。
一样一样的啊。
银点 2009-12-18
  • 打赏
  • 举报
回复
我把lib库加入工程不行么?
银点 2009-12-18
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 pp616 的回复:]
#pragma link "$BCB\\Lib\\PSDK\\ws2_32.lib"
[/Quote]
正解,问题解决了。

ws2_32.lib有几个版本:
$(BCB)\lib\psdk\ws2_32.lib
$(BCB)\lib\ws2_32.lib

$(BDS)\lib\ws2_32.lib
$(BDS)\lib\psdk\ws2_32.lib
在上述四个路径当中,只有\lib\psdk\下的ws2_32.lib是好用的,而在其上一级目录中的ws2_32.lib是无效的。
C++ Builder 2010无论怎么调整,它都是把$(BDS)\lib放在$(BDS)\lib\psdk\的前边。
要显式把$(BDS)\lib\psdk\下的ws2_32.lib加入工程或是#pragma link "$BCB\\Lib\\PSDK\\ws2_32.lib"问题得以解决。

用implib ws2_32.lib c:\windows\system32\ws2_32.dll 生成的ws2_32.lib只有1K,也是无效的。
zhgwbzhd 2009-12-18
  • 打赏
  • 举报
回复
我在bcb6中要插入 lib 库。一般这样做

//这是为了读取网卡MAC
#include <Iphlpapi.h>
#pragma comment(lib,"Iphlpapi.lib")

当然你可以把 project--directories--library path 内添加Iphlpapi.lib所在目录。
也可以直接把Iphlpapi.lib复制到你的文件夹内。因为library path 已经包含了你的文件夹。
银点 2009-12-18
  • 打赏
  • 举报
回复
[ILINK32 Error] Error: Unresolved external 'WSASocketA' referenced from D:\TEMP\DEBUG\MUTICAST.OBJ
[ILINK32 Error] Error: Unresolved external 'WSAJoinLeaf' referenced from D:\TEMP\DEBUG\MUTICAST.OBJ
dns007 2009-12-18
  • 打赏
  • 举报
回复
你的问题描述太简单了。。。
pp616 2009-12-18
  • 打赏
  • 举报
回复
#pragma link "$BCB\\Lib\\PSDK\\ws2_32.lib"
ccrun.com 2009-12-18
  • 打赏
  • 举报
回复
链接错误的具体提示是什么呢。
dns007 2009-12-18
  • 打赏
  • 举报
回复
我这边试过没有问题的 报错只可能是你的ws2_32.lib有问题
在cmd中 进入\Borland\CBuilder6\Bin
使用 implib ws2_32.lib c:\windows\system32\ws2_32.dll 重新生成一个lib文件 在添加到工程里 另外别忘了加#include <winsock2.h>

1,316

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder 网络及通讯开发
社区管理员
  • 网络及通讯开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧