为了代码能同时支持动态加载.dll和.so,所以使用apr。当然,直接使用windows和linux的动态加载也可以,写两个applications也能做到
For example, 动态加载libtest.dll和libtest.so
1. 新建一VS工程
2. 在工程属性中,加入apr的include路径和Lib库的所在路径
3. 在工程属性Preprocessor中,加入WINDOWSLIB
4. 在工程属性中,不需要加入libtest.lib的路径以及其他选项
5. 在LoadTest.cpp中加入如下代码就足够了:
#include <stdio.h>
#include <stdlib.h>
#include <apr_getopt.h>
#include <apr_general.h>
#include <apr_dso.h>
#include "test.h"
using namespace LoadLibrary::Test;
typedef apr_status_t (*TESTHELLO)(const char*);
class CLoadTest
{
void LoadTest()
{
#ifdef WINDOWSLIB
const char *pLibraryName= "libtest.dll";
#else
const char *pLibraryName= "libtest.so";
#endif
TESTHELL