#ifdef _MSC_VER
#include <windows.h>
#include <direct.h>
#define get_function_address(x, y) GetProcAddress(x, y)
#define load_dynamic_library(x) LoadLibrary(x)
#define free_dynamic_library(x) FreeLibrary(x)
#define get_error_message() GetLastError()
#else
#include <unistd.h>
#include <dlfcn.h>
#define get_function_address(x, y) dlsym(x, y)
#define load_dynamic_library(x) dlopen(x, RTLD_LAZY|RTLD_GLOBAL)
#define free_dynamic_library(x) dlclose(x)
#define get_error_message() dlerror()
#endif
动态库接口封装的时候,不要使用STL之类的参数类型,作为参数传递。目前发现在arm64下是可行的,但是在windows下会崩溃,原因是double free了,感觉是浅拷贝之类的问题。