38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
|
{
#ifndef OF_WINDOWS
return dlopen([path cStringWithEncoding: [OFLocale encoding]], flags);
#else
if (path == nil)
return GetModuleHandle(NULL);
return LoadLibraryW([path UTF16String]);
#endif
}
void *
of_dlsym(of_plugin_handle_t handle, const char *symbol)
{
#ifndef OF_WINDOWS
|
|
|
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
|
{
#ifndef OF_WINDOWS
return dlopen([path cStringWithEncoding: [OFLocale encoding]], flags);
#else
if (path == nil)
return GetModuleHandle(NULL);
return LoadLibraryW(path.UTF16String);
#endif
}
void *
of_dlsym(of_plugin_handle_t handle, const char *symbol)
{
#ifndef OF_WINDOWS
|
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
|
void *pool = objc_autoreleasePoolPush();
of_plugin_handle_t handle;
init_plugin_t initPlugin;
OFPlugin *plugin;
#if defined(OF_MACOS)
path = [path stringByAppendingFormat: @".bundle/Contents/MacOS/%@",
[path lastPathComponent]];
#elif defined(OF_IOS)
path = [path stringByAppendingFormat: @".bundle/%@",
[path lastPathComponent]];
#else
path = [path stringByAppendingString: @PLUGIN_SUFFIX];
#endif
if ((handle = of_dlopen(path, OF_RTLD_LAZY)) == NULL)
@throw [OFLoadPluginFailedException
exceptionWithPath: path
|
|
|
|
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
|
void *pool = objc_autoreleasePoolPush();
of_plugin_handle_t handle;
init_plugin_t initPlugin;
OFPlugin *plugin;
#if defined(OF_MACOS)
path = [path stringByAppendingFormat: @".bundle/Contents/MacOS/%@",
path.lastPathComponent];
#elif defined(OF_IOS)
path = [path stringByAppendingFormat: @".bundle/%@",
path.lastPathComponent];
#else
path = [path stringByAppendingString: @PLUGIN_SUFFIX];
#endif
if ((handle = of_dlopen(path, OF_RTLD_LAZY)) == NULL)
@throw [OFLoadPluginFailedException
exceptionWithPath: path
|