在VS2008下用ACE创建及使用DLL(动态链接库)
下面是 ACE-6.0.0 提供的创建及使用DLL的实例,代码所在目录:\ACE-6.0.0\ACE_wrappers\examples\Export 。
DLL的代码:
1. dll.h 文件
// $Id: dll.h 80826 2008-03-04 14:51:23Z wotte $
// To use the export macros with a DLL, a file will need to be
// created (see ACE_wrapper/bin/generate_export_file.pl) and
// included. This file defines Test_Export (and the
// TEST_SINGLETON_* macros).
#include "test_export.h"
#include "ace/Singleton.h"
#include "ace/Null_Mutex.h"
#define RETVAL 42
// To expose a function outside of a DLL, use the *_Export
// at the beginning of the function declaration.
Test_Export int test_function ();
// To expose data, put use the *Export at the beginning
// of the variable declaration. The extern is required when
// building static libraries.
extern Test_Export int test_variable;
// To expose a class, put the *_Export between "class"
// and the class name.
class Test_Export test_class
{
public:
int method ();
};
// ACE_Singleton and its relatives are special cases. The problem is
// that ACE_Singleton is a template. If the singleton is used in both
// the DLL and the executable linking the DLL, then two instances of
// the singleton will be used (which defeats the purpose of a Sin