WIN32: osdFindSymbol() use psapi
This commit is contained in:
@@ -21,4 +21,4 @@ LOADABLE_SHRLIB_LDFLAGS = -shared \
|
||||
GNU_LDLIBS_YES =
|
||||
|
||||
# Link with system libraries
|
||||
OP_SYS_LDLIBS = -lws2_32 -ladvapi32 -luser32 -lkernel32 -lwinmm -ldbghelp
|
||||
OP_SYS_LDLIBS = -lpsapi -lws2_32 -ladvapi32 -luser32 -lkernel32 -lwinmm -ldbghelp
|
||||
|
||||
@@ -32,4 +32,4 @@ LOADABLE_SHRLIB_LDFLAGS = -shared \
|
||||
GNU_LDLIBS_YES =
|
||||
|
||||
# Link with system libraries
|
||||
OP_SYS_LDLIBS = -lws2_32 -ladvapi32 -luser32 -lkernel32 -lwinmm -ldbghelp
|
||||
OP_SYS_LDLIBS = -lpsapi -lws2_32 -ladvapi32 -luser32 -lkernel32 -lwinmm -ldbghelp
|
||||
|
||||
@@ -5,10 +5,15 @@
|
||||
\*************************************************************************/
|
||||
/* osi/os/WIN32/osdFindSymbol.c */
|
||||
|
||||
/* avoid need to link against psapi.dll
|
||||
* requires windows 7 or later
|
||||
/* Avoid need to link against psapi.dll. requires windows 7 or later.
|
||||
* MinGW doesn't provide wrappers until 6.0, so fallback to psapi.dll
|
||||
*/
|
||||
#define NTDDI_VERSION NTDDI_WIN7
|
||||
#ifdef _MSC_VER
|
||||
# define NTDDI_VERSION NTDDI_WIN7
|
||||
# define epicsEnumProcessModules K32EnumProcessModules
|
||||
#else
|
||||
# define epicsEnumProcessModules EnumProcessModules
|
||||
#endif
|
||||
|
||||
#include <windows.h>
|
||||
#include <psapi.h>
|
||||
@@ -72,7 +77,7 @@ epicsShareFunc void * epicsShareAPI epicsFindSymbol(const char *name)
|
||||
/* As a handle returned by LoadLibrary() isn't available to us,
|
||||
* try all loaded modules in arbitrary order.
|
||||
*/
|
||||
if(K32EnumProcessModules(GetCurrentProcess(), dlls, sizeof(dlls), &ndlls)) {
|
||||
if(epicsEnumProcessModules(GetCurrentProcess(), dlls, sizeof(dlls), &ndlls)) {
|
||||
for(i=0; !ret && i<ndlls; i++) {
|
||||
ret = GetProcAddress(dlls[i], name);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user