[MPlayer-dev-eng] how to add lookup / add functions in loader/win32.c ?

Reimar Döffinger Reimar.Doeffinger at gmx.de
Sun May 17 08:39:54 CEST 2015


On Sat, May 16, 2015 at 06:27:16PM -0400, compn wrote:
> Called unk_ATL90.DLL:15

I don't know how this works, but that entry is a 0 pointer
in the original DLL.
One problem is that we are missing support for pure ordinal
exports without a name, patch below might fix it.
Then something like
{NULL, 15, 0}
might do it (more consistent would be to use (void*)-1 for the last
one, but that way of specifying undefined functions doesn't actually
work for ordinal lookup - looks like a bug).

--- a/loader/win32.c
+++ b/loader/win32.c
@@ -5813,7 +5813,7 @@ void* LookupExternalByName(const char* library, const char* name)
            continue;
        for(j=0; j<libraries[i].length; j++)
        {
-           if(strcmp(name, libraries[i].exps[j].name))
+           if(libraries[i].exps[j].name && strcmp(name, libraries[i].exps[j].name))
                continue;
            if((unsigned int)(libraries[i].exps[j].func) == -1)
                return NULL; //undefined func


More information about the MPlayer-dev-eng mailing list