luhouxiang 发表于 2008-1-29 00:54:01

测试ACEClient提示WSAStartup失败

提示内容:
ACE_INET_Addr::ACE_INET_Addr: localhost: 应用程序没有调用 WSAStartup,或者 WSASt
artup 失败。
connect: 应用程序没有调用 WSAStartup,或者 WSAStartup 失败。
请按任意键继续 . . .

估计是要加载一个启动代码,不过在书上没有找到相关的东西,只好来这儿问问了。

原代码如下:
// testACEClient.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"

#include "ace/INET_Addr.h"
#include "ace/SOCK_Stream.h"
#include "ace/SOCK_Connector.h"
#include "ace/Log_Msg.h"


int _tmain(int argc, _TCHAR* argv[])
{

        ACE_INET_Addr srvr (50000,ACE_LOCALHOST);

        ACE_SOCK_Connector connector;
        ACE_SOCK_Stream peer;

        if (-1 == connector.connect(peer, srvr))
        {
                ACE_ERROR_RETURN ((LM_ERROR,
                        ACE_TEXT ("%p\n"),
                        ACE_TEXT ("connect")),1);
        }

        int bc;
        char buf;

        peer.send_n ("uptime\n",7);
        bc = peer.recv (buf,sizeof(buf));
        write (1,buf,bc);
        peer.close();


        return 0;
}

// 应用程序没有调用 WSAStartup

jerry0715 发表于 2008-1-29 13:34:28

这时ACE以后的代码,在windows上它最终还是要调用windows的网络栈API的,我没有遇到过你的问题。我感觉是不是你应该重新编译一下ACEd.dll,在config.h中修改一下,按windows上的ACE编译方法来编译,然后link到你的程序中,再试试

peakzhang 发表于 2008-1-29 16:35:39

_tmain -> ACE_TMAIN,或者在最开始调用ACE::init();
页: [1]
查看完整版本: 测试ACEClient提示WSAStartup失败