VC驿站

 找回密码
 加入驿站

QQ登录

只需一步,快速开始

有编程疑问吗?还请到提问专区发帖提问!
搜索
查看: 388|回复: 6

[求助] bind函数返回值没有与整数比较的操作数???

[复制链接]
14_avatar_middle
在线会员 liontxl 发表于 2018-8-2 15:23:39 | 显示全部楼层 |阅读模式
5驿站币
众所周知bind函数是将sockaddr和SOCKET绑定在一起。可是我的bind函数却发疯了。既然搞了个模板bind函数???什么鬼????
bind函数返回值没有与整数比较的操作数???

代码如下:
m_Server = (SOCKET)socket(AF_INET, SOCK_STREAM, 0);
    if(m_Server == -1)return false;
    sockaddr_in ServerAddr;
    memset(&ServerAddr, 0, sizeof(ServerAddr));
    ServerAddr.sin_family = AF_INET;
    ServerAddr.sin_addr.s_addr = INADDR_ANY;
    ServerAddr.sin_port = htons(6521);
   if (bind(m_Server, (LPSOCKADDR)&ServerAddr, sizeof(ServerAddr)) != 0)
                return false;

二进制“!=”: 没有找到接受“std::_Bind<false,void,SOCKET &,LPSOCKADDR,unsigned int>”类型的左操作数的运算符(或没有可接受的转换)

最佳答案

查看完整内容

好吧,那是我看错了,我以为是全角的 !符号,问题解决了就好!




上一篇:驱动程序能获得相对路径吗,驱动程序该如何主动向应用层发消息?
下一篇:CFile不懂,急死我了

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你已经在论坛发帖求助,并且从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友?可以给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

51_avatar_middle
online_admins Syc 发表于 2018-8-2 15:23:40 | 显示全部楼层
liontxl 发表于 2018-8-2 17:16
不是的,c++11中定义了一个bind模板库,跟socket的bind重名了。再加上using namespace std了,所以编译器 ...

好吧,那是我看错了,我以为是全角的 !符号,问题解决了就好!

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你已经在论坛发帖求助,并且从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友?可以给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复

使用道具 举报

14_avatar_middle
ico_lz  楼主| liontxl 发表于 2018-8-2 15:26:13 | 显示全部楼层
bind函数在functional头文件下。

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你已经在论坛发帖求助,并且从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友?可以给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复

使用道具 举报

14_avatar_middle
ico_lz  楼主| liontxl 发表于 2018-8-2 15:26:43 | 显示全部楼层
bind函数在functional头文件下。声明如下:

        // TEMPLATE FUNCTION bind (implicit return type)
template<class _Fun,
        class... _Types> inline
        _Bind<false, void, _Fun, _Types...>
                bind(_Fun&& _Fx, _Types&&... _Args)
        {        // bind a function object
        return (_Bind<false, void, _Fun, _Types...>(
                _STD forward<_Fun>(_Fx), _STD forward<_Types>(_Args)...));
        }

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你已经在论坛发帖求助,并且从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友?可以给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复

使用道具 举报

51_avatar_middle
online_admins Syc 发表于 2018-8-2 16:55:33 | 显示全部楼层
楼主范了个低级错误!
if (bind(m_Server, (LPSOCKADDR)&ServerAddr, sizeof(ServerAddr)) != 0)
这个 if 中的 !不等于号应该是用了全角的,改成半角的 ! 就可以了

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你已经在论坛发帖求助,并且从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友?可以给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复

使用道具 举报

14_avatar_middle
ico_lz  楼主| liontxl 发表于 2018-8-2 17:16:13 | 显示全部楼层
Syc 发表于 2018-8-2 16:55
楼主范了个低级错误!
if (bind(m_Server, (LPSOCKADDR)&ServerAddr, sizeof(ServerAddr)) != 0)
这个 if ...

不是的,c++11中定义了一个bind模板库,跟socket的bind重名了。再加上using namespace std了,所以编译器调用的是模板库bind。所以调用socket的bind不能想以前那样直接"bind(SOCKET, sockaddr, int)"了,而需要“::bind(...)”

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你已经在论坛发帖求助,并且从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友?可以给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 加入驿站 qq_login

本版积分规则

关闭

站长提醒上一条 /1 下一条

QQ
QQ在线咨询
联系电话
13591366679
手机扫一扫 关注本站精彩内容
wxqrcode

QQ|小黑屋|手机版|VC驿站 ( 辽ICP备09019393号tongdun|网站地图wx_jqr

GMT+8, 2018-10-20 15:40

Powered by Discuz! X3.4

© 2009-2018 cctry.com

快速回复 返回顶部 返回列表