windows + vs9 上安装 ace 并且编译运行一个sample 程序

一,下载,解压,安装

1. 从官方网站下载页面下载 ACE。(http://download.dre.vanderbilt.edu/)

    我下的是 ACE+TAO+CIAO.zip 最新版的 ACE+TAO+CIAO-5.7.7.zip, 113M.

 

2. 解压ACE+TAO+CIAO-5.7.7.zip, 解压后有 600+ M. 比如说解压到路径 D:/ACE, 就会有文件夹 D:/ACE/ACE_wrappers

3. 创建系统环境变量 ACE_ROOT, 值为 D:/ACE/ACE_wrappers。

4. 在路经 $(ACE_ROOT)/ace 下创建文件 config.h, 并且插入一行代码:

#include "ace/config-win32.h"

5. 打开 $(ACE_ROOT)/ACE_wrappers_vc9.sln, 编译得到 $(ACE_ROOT)/lib/ACEd.dll 和 $(ACE_ROOT)/lib/ACEd.lib。

 

 

二:运行 sample 程序

从网上找了个简单的 Sample.

1. 系统环境变量 Path 里添加ACEd.dll 的路径 $(ACE_ROOT)/lib

2. 建两个 win32 空工程,ace_sample1_client 和 ace_sample1_server。

3. 两个工程的 subsystem 设定成 console.

4. ace_sample1_client 中添加源文件,并插入如下代码

#include <iostream> #include <string> #include <ace/ACE.h> #include <ace/INET_Addr.h> #include <ace/SOCK_Connector.h> #include <ace/SOCK_Stream.h> int wmain( int argc, char* argv[] ) { ACE::init();//初始化ACE库,在windows下一定要 std::string str = "hello world"; //设置服务器地址 //第一个参数是端口,第二个是ip地址,也可以是域名。 //可以先定义一个地址对象,再用ACE_INET_Addr的set函数来设定。 //地址的配置很多,具体的参照文档 ACE_INET_Addr peer_addr( 5050, "172.18.7.19" ); ACE_SOCK_Stream peer_stream;//定义一个通讯队形 ACE_SOCK_Connector peer_connector;//定义一个主动连接对象 peer_connector.connect( peer_stream, peer_addr );//发起一个连接 peer_stream.send( str.c_str(), str.length() );//发送数据到服务器 str.erase(); str.resize( sizeof( "hello world" ) ); peer_stream.recv( (void*)str.c_str(), str.length() );//接收来自服务器的信息 std::cout << "from server message : " << str << std::endl; ACE::fini(); return 0; }

 

5. ace_sample1_server 里添加源文件,并添加如下代码:

#include <iostream> #include <string> #include <ace/ACE.h> #include <ace/SOCK_Acceptor.h> #include <ace/SOCK_Stream.h> int main( int argc, char* argv[] ) { ACE::init(); std::string str; str.resize( sizeof( "hello world" ) ); //设置服务器地址 ACE_INET_Addr peer_addr( 5050, "172.18.7.19" ); ACE_SOCK_Stream peer_stream; //创建被动连接角色对象 ACE_SOCK_Acceptor peer_acceptor; //开启被动连接对象,将对象绑定到一个地址上 peer_acceptor.open( peer_addr ); while(true) { //等待连接 peer_acceptor.accept( peer_stream ); //数据通讯 peer_stream.recv( (void*)str.c_str(), str.length() ); std::cout << "from client message : " << str << std::endl; peer_stream.send( str.c_str(), str.length() ); } ACE::fini(); return 0; }

6. 在两个工程的 Additional Include Directories 里添加 $(ACE_ROOT).

7. 在两个工程的 Additional Dependencies 里添加 D:/ACE/ACE_wrappers/lib/ACEd.lib

8. 编译两个工程。

9. 先运行 ace_sample1_server.exe, 再运行 ace_sample1_client.exe.

 

参考:

。。。

 

你可能感兴趣的:(windows + vs9 上安装 ace 并且编译运行一个sample 程序)