找回密码
 用户注册

QQ登录

只需一步,快速开始

查看: 4370|回复: 2

求救,在线等.编译ACE的问题(VS2005+ACE)

[复制链接]
发表于 2007-12-19 22:03:31 | 显示全部楼层 |阅读模式
初学ACE,编译了库以后运行ACE自带的example都没有问题,自己建一个工程编写一个简单的小程序就不行了

报错:(2个)

MSVCRT.lib(crtexe.obj) : error LNK2001: 无法解析的外部符号 _main

fatal error LNK1120: 1 个无法解析的外部命令

问什么我打开ACE自带的工程编译就没问题,高手给来看看,程序就是C++网络编程第一卷里面的一个小程序

  1. #include "ace/INET_Addr.h"
  2. #include "ace/SOCK_Connector.h"
  3. #include "ace/SOCK_Stream.h"
  4. #define BUFSIZ 8
  5. int main (int argc, char *argv[])
  6. {
  7.   const char *pathname =  "index.html";
  8.   const char *server_hostname =  "www.163.com";
  9.   ACE_SOCK_Connector  connector;
  10.   ACE_SOCK_Stream peer;
  11.   ACE _INET_Addr peer_addr;
  12.   if (peer_addr.set (80, server_hostname) == -1)
  13.     return 1;
  14.   else if (connector.connect (peer, peer_addr) == -1)
  15.     return 1;
  16. char buf [BUFSIZ];
  17. iovec iov[3];
  18. iov[0].iov_base = "GET ";
  19. iov[0].iov_len = 4; // Length of "GET ".
  20. iov[1].iov_base = pathname;
  21. iov[1].iov_len = strlen (pathname);
  22. iov[2] iov_base = " HTTP/1.0\r\n\r\n" ;
  23. iov[2].iov_len = 13; // Length of " HTTP/1.0\r\n\r\n";
  24. if (peer.sendv_n (iov, 3) == -1)
  25.    return 1;
  26. for (ssize_t n; (n = peer.recv (buf, sizeof buf)) > 0; )
  27.    ACE::write_n (ACE_STDOUT, buf, n);
  28. return peer.close() == -1 ? 1 : 0;
  29. }
复制代码
 楼主| 发表于 2007-12-19 22:03:43 | 显示全部楼层
问题可以解决了。
原来使用如下定义:
int main()
{
//coding
}

会出现错误如下:
error LNK2019: 无法解析的外部符号 "int __cdecl ace_main_i(int,char * * const)" (?ace_main_i@@YAHHQAPAD@Z),该符号在函数 "private: virtual int __thiscall ACE_Main::run_i(int,char * * const)" (?run_i@ACE_Main@@EAEHHQAPAD@Z) 中被引用。

修改main函数定义形式如下:
int ACE_TMAIN (int,ACE_TCHAR *[])
{
}
程序即可通过
 楼主| 发表于 2007-12-19 22:03:52 | 显示全部楼层
Configuration properties -> General -> Character Set 改为Not Set
您需要登录后才可以回帖 登录 | 用户注册

本版积分规则

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

GMT+8, 2024-5-20 07:27 , Processed in 0.016606 second(s), 6 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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