不得不佩服ACE的跨平台强大之处
如果你需要在Windows下创建dll项目供其他项目使用。
你创建dll项目的代码要导出才能被外部访问,这个是由于Windows的动态链接库默认访问级别为私有导致的,所以只有导出的接口才会被外部访问。
在你打算导出的时候只需要使用ACE自带的导出宏即可:
头文件应该像这个样子:
#ifndef CONFIGLOADER_H #define CONFIGLOADER_H #include "ace/Log_Msg.h" class ACE_Export ConfigLoader { public: ConfigLoader(void); ~ConfigLoader(void); void load_from_file(void); void load_from_db(void); }; #endif
源文件正常,无需任何变动:
/************************************************************************/ /* 配置加载类 */ /************************************************************************/ #include "ConfigLoader.h" ConfigLoader::ConfigLoader(void) { } ConfigLoader::~ConfigLoader(void) { } void ConfigLoader::load_from_db(void) { ACE_DEBUG((LM_DEBUG,"ConfigLoader::load_from_db(void) run")); } void ConfigLoader::load_from_file(void) { ACE_DEBUG((LM_DEBUG,"ConfigLoader::load_from_file(void) run")); }
即可编译生成dll,供其他项目使用,多棒!
具体操作参考:http://blog.csdn.net/calmreason/article/details/6989390中官方网站教程(主要是VC++工程的“项目引用”功能 )
时间: 2024-12-29 11:37:20