找回密码
 用户注册

QQ登录

只需一步,快速开始

查看: 4673|回复: 5

奇怪的一个错误啊。。。

[复制链接]
发表于 2010-6-23 21:35:42 | 显示全部楼层 |阅读模式
// lunwentest.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include "ace/Message_Queue.h"
#include "ace/Asynch_IO.h"
#include "ace/OS.h"
#include "ace/Proactor.h"
#include "ace/Asynch_Acceptor.h"
class HA_Proactive_Service : public ACE_Service_Handler
{
public:
~HA_Proactive_Service ()
{
  if (this->handle () != ACE_INVALID_HANDLE)
   ACE_OS::closesocket (this->handle ());
}
virtual void open (ACE_HANDLE h, ACE_Message_Block&)
{
  this->handle (h);
  if (this->reader_.open (*this) != 0 )
  {
   ACE_ERROR ((LM_ERROR, ACE_TEXT ("%p\n"),
    ACE_TEXT ("HA_Proactive_Service open")));
   delete this;
   return;
  }
  ACE_Message_Block *mb = new ACE_Message_Block(buffer,1024);
  if (this->reader_.read (*mb, mb->space ()) != 0)
  {
   ACE_OS::printf("Begin read fail\n");
   delete this;
   return;
  }
  return;
}
virtual void handle_read_stream
  (const ACE_Asynch_Read_Stream::Result &result)
{
  ACE_Message_Block &mb = result.message_block ();
  if (!result.success () || result.bytes_transferred () == 0)
  {
   mb.release ();
   delete this;
   return;
  }
  mb.copy("");    //为字符串添加结束标记'\0'
  ACE_OS::printf("rev:\t%s\n",mb.rd_ptr());
  mb.release();
  ACE_Message_Block *nmb = new ACE_Message_Block(buffer,1024);
  if (this->reader_.read (*nmb, nmb->space ()) != 0)
   return;
}
private:
ACE_Asynch_Read_Stream reader_;
char buffer[1024];
};
int main(int argc, char *argv[])
{
int port=3000;
ACE_Asynch_Acceptor<HA_Proactive_Service>  acceptor;
if (acceptor.open (ACE_INET_Addr (port)) == -1)
  return -1;
while(true)
  ACE_Proactor::instance ()->handle_events ();
return 0;
}



------ 已启动生成: 项目: lunwentest, 配置: Debug Win32 ------
正在编译...
lunwentest.cpp
f:\ace-5.7.7\ace_wrappers\ace\framework_component.h(191) : error C2146: syntax error : missing ';' before identifier 'shutting_down_'
f:\ace-5.7.7\ace_wrappers\ace\framework_component.h(191) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
f:\ace-5.7.7\ace_wrappers\ace\framework_component.h(191) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
f:\ace-5.7.7\ace_wrappers\ace\framework_component.h(191) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
f:\ace-5.7.7\ace_wrappers\ace\proactor.h(623) : error C2146: syntax error : missing ';' before identifier 'end_event_loop_'
f:\ace-5.7.7\ace_wrappers\ace\proactor.h(623) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
f:\ace-5.7.7\ace_wrappers\ace\proactor.h(623) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
f:\ace-5.7.7\ace_wrappers\ace\proactor.h(626) : error C2146: syntax error : missing ';' before identifier 'event_loop_thread_count_'
f:\ace-5.7.7\ace_wrappers\ace\proactor.h(626) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
f:\ace-5.7.7\ace_wrappers\ace\proactor.h(626) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
生成日志保存在“file://d:\aceex\lunwentest\lunwentest\Debug\BuildLog.htm”
lunwentest - 10 个错误,0 个警告
========== 生成: 0 已成功, 1 已失败, 0 最新, 0 已跳过 ==========
发表于 2010-6-24 10:19:51 | 显示全部楼层
一般这类错误都是,缺少了需要的头文件,导致编译器没有找到类型的定义。
 楼主| 发表于 2010-6-24 10:52:21 | 显示全部楼层
原帖由 modern 于 2010-6-24 10:19 发表
一般这类错误都是,缺少了需要的头文件,导致编译器没有找到类型的定义。


谢谢。。那有可能是缺少什么头文件啊?感谢。。
发表于 2010-6-24 21:45:00 | 显示全部楼层
这就只有你自己知道了
 楼主| 发表于 2010-6-25 19:41:26 | 显示全部楼层
由于升级2008,问题太多 了,还是重装了下系统解决彻底。免得烦。好了。
发表于 2010-7-13 22:21:14 | 显示全部楼层
是不是忘了提供config.h文件了?或者在config.h中包含了错误的平台文件?
sig_atomic_t通常是linux下的,windows下是没有的,需要ACE为我们模拟一个出来。
您需要登录后才可以回帖 登录 | 用户注册

本版积分规则

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

GMT+8, 2024-12-23 04:02 , Processed in 0.015875 second(s), 6 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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