求救,在线等.编译ACE的问题(VS2005+ACE)
初学ACE,编译了库以后运行ACE自带的example都没有问题,自己建一个工程编写一个简单的小程序就不行了报错:(2个)
MSVCRT.lib(crtexe.obj) : error LNK2001: 无法解析的外部符号 _main
fatal error LNK1120: 1 个无法解析的外部命令
问什么我打开ACE自带的工程编译就没问题,高手给来看看,程序就是C++网络编程第一卷里面的一个小程序
#include "ace/INET_Addr.h"
#include "ace/SOCK_Connector.h"
#include "ace/SOCK_Stream.h"
#define BUFSIZ 8
int main (int argc, char *argv[])
{
const char *pathname ="index.html";
const char *server_hostname ="www.163.com";
ACE_SOCK_Connectorconnector;
ACE_SOCK_Stream peer;
ACE _INET_Addr peer_addr;
if (peer_addr.set (80, server_hostname) == -1)
return 1;
else if (connector.connect (peer, peer_addr) == -1)
return 1;
char buf ;
iovec iov;
iov.iov_base = "GET ";
iov.iov_len = 4; // Length of "GET ".
iov.iov_base = pathname;
iov.iov_len = strlen (pathname);
iov iov_base = " HTTP/1.0\r\n\r\n" ;
iov.iov_len = 13; // Length of " HTTP/1.0\r\n\r\n";
if (peer.sendv_n (iov, 3) == -1)
return 1;
for (ssize_t n; (n = peer.recv (buf, sizeof buf)) > 0; )
ACE::write_n (ACE_STDOUT, buf, n);
return peer.close() == -1 ? 1 : 0;
}
问题可以解决了。
原来使用如下定义:
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 *[])
{
}
程序即可通过 Configuration properties -> General -> Character Set 改为Not Set
页:
[1]