找回密码
 用户注册

QQ登录

只需一步,快速开始

查看: 3201|回复: 1

用Connector框架,怎么不能申请ACE_Svc_Handler.

[复制链接]
发表于 2008-5-16 21:30:22 | 显示全部楼层 |阅读模式
// ACE_Echo.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include <ace/Reactor.h>
#include <ace/Svc_Handler.h>
#include <ace/Connector.h>
#include <ace/Synch.h>
#include <ace/SOCK_Connector.h>
class My_Svc_Handler;

typedef ACE_Connector<My_Svc_Handler,ACE_SOCK_CONNECTOR> MyConnector;
class My_Svc_Handler:
        public ACE_Svc_Handler <ACE_SOCK_STREAM,ACE_NULL_SYNCH>
{
private:
public:
        My_Svc_Handler(){}
        int open(void*)
        {
                //注册相应事件
                ACE_Reactor::instance()->register_handler(this,
                        ACE_Event_Handler::READ_MASK);
                return 0;
        }

        int handle_input(ACE_HANDLE)
        {
                return 0;
        }

};

int main(int argc, char* argv[])
{
        ACE_INET_Addr addr(3000,"127.0.0.1");
        My_Svc_Handler *svchandler = new My_Svc_Handler();
        MyConnector connector;
        if(connector.connect(svchandler,addr) ==-1)
        {
                return 0;
        }
        while(1)
                ACE_Reactor::instance()->handle_events();
        return 0;

}


这段代码是能编译通过的。
我也学着这小例子写了一个。结果new 时就出了错。
提示是:
e:\vc7工程\项目一\client\复件client_v4.1f\client_v1\client_v1dlg.cpp(58): error C2661: “ACE_Svc_Handler<_ACE_PEER_STREAM,_ACE_SYNCH>::operator new” : 没有重载函数接受 3 个参数
        with
        [
            _ACE_PEER_STREAM=ACE_SOCK_Stream,
            _ACE_SYNCH=ACE_NULL_SYNCH
        ]
为什么上面那个例子行啊。
我另外写的那个用时new就不行了。
发表于 2008-5-17 11:11:12 | 显示全部楼层
没看见你的例子,说不好。
你代码贴上来看看。
您需要登录后才可以回帖 登录 | 用户注册

本版积分规则

Archiver|手机版|小黑屋|ACE Developer ( 京ICP备06055248号 )

GMT+8, 2024-12-23 18:23 , Processed in 0.023713 second(s), 7 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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