VC6.0上成功编译ACE和使用ACE连接自己程序时候的手把手配置方案

来源:互联网 发布:ableton live mac中文 编辑:程序博客网 时间:2024/06/05 17:34
 成功编译ACE时的配置和使用ACE连接自己程序时候的配置:开始使用ACE,虽然网上多的是介绍编译和使用的文章,但是都没有傻瓜级的使用指南,希望这篇能够弥补这个不足。test程序使用console的程序test.cpp#include "ace/INET_Addr.h"#include "ace/SOCK_Stream.h"#include "ace/SOCK_Connector.h"#include "ace/Log_Msg.h"int ACE_TMAIN (int, ACE_TCHAR *[]){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[64];peer.send_n("uptime/n",7);bc = peer.recv(buf,sizeof(buf));write(1,buf,bc);peer.close();return (0);}其编译时的配置情况:tools -> Directories -> include files 中包含了ace的文件夹tools -> Directories -> library files 中包含了ACE_wrappers/bin文件夹路径tools -> Directories -> library files 中包含了ACE_wrappers/lib文件夹路径;注意这个lib路径应该是编译ace生成的dll,lib的存放的地方;用户可以另外保存。project -> Setting 页面中的Setting For: 选择win32 Debugproject -> Setting -> General 页面在Microsoft Foundation Classes中选择Not Using MFCproject -> Setting -> C/C++ -> Code Generation页面中的Use run-time library栏中选择Debug Multithreaded DLLproject -> Setting -> Link -> Input 页面中 在Object/library modules栏中添加aced.libOK.这样我们的编译的test程序:基于console,而不用mfc类库;使用aced.dll共享库;使用调试模式的多线程共享库;执行的时候,应该会提示找不到aced.dll文件,实际这个应该是在test程序根目录下存放aced.dll,或者在系统目录win32下存放aced.dll,我还是更倾向于前者。运行。。。。呵呵,这个test只是随手写的,并不能很好的运行,因为没有server端,但至少证明可以运行的。下面还是缺少满足上述程序的如何ACED.DLL这样的程序需要对应的ACED.dll库,下面讲述如何构建ACED.DLL按照很多网上文章介绍的步骤,打开ace.dsw创建config.h文件并加入工程,config.h文件内容为:#define ACE_HAS_STANDARD_CPP_LIBRARY 1 //使用标准C++库//#define ACE_HAS_MFC 1 //使用MFC库//#define THR_USE_AFX 1 //使用CWinThread产生新的线程类//#define ACE_USES_STATIC_MFC 1 //静态连接MFC库//#define ACE_AS_STATIC_LIBS 1 //生成静态的ACE库//#define ACE_NO_INLINE //是否使用内联函数在静态库内#include "ace/config-win32.h"我注销了大部分的define语句,而保留了ACE_HAS_STANDARD_CPP_LIBRARY 行是因为我实在习惯了STL的操作一般情况下在拥有这样一个config.h后,就能在ACE_wrappers/lib文件夹下生成我们需要的lib和dll文件但为了安全期间,我还check了一下VC设置的其他地方(和上面test设置的地方一样),大家跟着一起查看一下Project Setting应保证win32 Debug;Project Setting -> General应保证不使用MFC;Project Setting ->C/C+应保证使用Debug Multhread;Project Setting ->Link应保证加入了aced.lib所有的保证了,那一定能够顺利编译,并在ACE_wrappers/lib中得到了aced.lib 和aced.dll文件希望大家都成功使用ACE
原创粉丝点击