ACE学习笔记--新手上路(原创)

来源:互联网 发布:代账软件 编辑:程序博客网 时间:2024/05/01 01:33

ACE学习之安装篇

 本人刚开始学习ACE,在以后的日子里,我将把我的学习体会和大家分享.

先说明一个我的环境:我用的操作系统是windox XP,编译器是VS2005.

首先下载ACE压缩包,我下载的是ACE-5.5.zip.将ACE-5.5.zip解压缩在D盘根目录下面,于是生成了新的目录文件D:/ACE_wrappers。下面就是编译ACE了。我觉得对于新手,编译ACE还是有些疑惑的。最开始就是自己在D:/ACE_wrappers/ace目录下建一个文件:config.h,在文件里面加入#include "config-win32.h"即可(我还加了
#include "config-win32-msvc-8.h")。大家注意到没有,D:/ACE_wrappers目录下面有ACE_vc8.sln,打开它仅仅编译第一个项目ACE即可,编译整个解决方案大可不必,其他都是例子,你用到的时候单独编译即可(编译所有的项目至少需要2,3个小时)。也可以进入D:/ACE_wrappers/ace目录,编译此目录下的ace_vc8.sln,这样编译的就仅仅是ACE本身了,编译完之后,会在D:/ACE_wrappers/lib下面生成相应的文件,包括lib和dll文件。事实上,例子编译后生成的dll文件也在此目录下。通过编译,我生成了debug版本的lib和dll(ACEd.lib和ACEd.dll)。

另外要添加环境变量ACE_ROOT,就是ACE_wrappers所在的路径,我的是D:/ACE_wrappers。

我接着试图编译如下的例子,大家可别小看这个例子,你就不一定编译的过去。事实上我是编译ACE自带的例程,编译不过去,才转而编译这个例子的,呵呵。我自己就是郁闷的不行了,就是编译不过去。编译之前,我已把ACEd.lib加入项目->属性->链接->输入->附加依赖项,在工具->选项->项目和解决方案->VC++目录,添加了包含文件D:/ACE_wrappers,添加了库文件D:/ACE_wrappers/lib,可是还是有错误。错误说明就在代码下面。

 

 

#include "ace/LOG_MSG.h"

int ACE_TMAIN(int argc , ACE_TCHAR *argv[])
{
    
//ACE_TCHAR( ( ACE_TEXT( "main" ) ) );
    return 0;
}

 

 

 

Log_Msg.obj : error LNK2019: 无法解析的外部符号 "__declspec(dllimport) int __cdecl ace_os_wmain_i(class ACE_Main_Base &,int,wchar_t * * const)" (__imp_?ace_os_wmain_i@@YAHAAVACE_Main_Base@@HQAPA_W@Z),该符号在函数 _wmain 中被引用
C:Documents and SettingsyynMy DocumentsVisual Studio 
2005ProjectsLog_MsgDebugLog_Msg.exe : fatal error LNK1120: 1 个无法解析的外部命令
生成日志保存在“file:
//c:Documents and SettingsyynMy DocumentsVisual Studio 2005ProjectsLog_MsgLog_MsgDebugBuildLog.htm”
Log_Msg - 2 个错误,0 个警告

 

当时是百思不得其解,后来看论坛,都说是lib和dll文件着不到,可是我这两项都添加进去了。。。。郁闷那。请教了一个牛人才晓得:是VC2005默认字符集是unicode编码,而ACE默认是ASCII编码,两者不一致。在项目->属性->配置属性将字符集改为未设置,重新编译,成功。