Mercurial > mplayer.hg
comparison loader/win32.c @ 22476:50225df605b5
Support function lookup via ordinal
author | reimar |
---|---|
date | Thu, 08 Mar 2007 22:29:00 +0000 |
parents | 9edc4cfaeaed |
children | 15ca243429f9 |
comparison
equal
deleted
inserted
replaced
22475:9edc4cfaeaed | 22476:50225df605b5 |
---|---|
2433 case MODULE_HANDLE_winmm: | 2433 case MODULE_HANDLE_winmm: |
2434 result=LookupExternalByName("winmm.dll", name); break; | 2434 result=LookupExternalByName("winmm.dll", name); break; |
2435 default: | 2435 default: |
2436 result=GetProcAddress(mod, name); | 2436 result=GetProcAddress(mod, name); |
2437 } | 2437 } |
2438 dbgprintf("GetProcAddress(0x%x, '%s') => 0x%x\n", mod, name, result); | 2438 if((unsigned int)name > 0xffff) |
2439 dbgprintf("GetProcAddress(0x%x, '%s') => 0x%x\n", mod, name, result); | |
2440 else | |
2441 dbgprintf("GetProcAddress(0x%x, '%d') => 0x%x\n", mod, (int)name, result); | |
2439 return result; | 2442 return result; |
2440 } | 2443 } |
2441 | 2444 |
2442 static long WINAPI expCreateFileMappingA(int hFile, void* lpAttr, | 2445 static long WINAPI expCreateFileMappingA(int hFile, void* lpAttr, |
2443 long flProtect, long dwMaxHigh, | 2446 long flProtect, long dwMaxHigh, |
5417 if(library==0) | 5420 if(library==0) |
5418 { | 5421 { |
5419 printf("ERROR: library=0\n"); | 5422 printf("ERROR: library=0\n"); |
5420 return (void*)ext_unknown; | 5423 return (void*)ext_unknown; |
5421 } | 5424 } |
5422 if(name==0) | 5425 if((unsigned long)name<=0xffff) |
5423 { | 5426 { |
5424 printf("ERROR: name=0\n"); | 5427 return LookupExternal(library, (int)name); |
5425 return (void*)ext_unknown; | |
5426 } | 5428 } |
5427 dbgprintf("External func %s:%s\n", library, name); | 5429 dbgprintf("External func %s:%s\n", library, name); |
5428 for(i=0; i<sizeof(libraries)/sizeof(struct libs); i++) | 5430 for(i=0; i<sizeof(libraries)/sizeof(struct libs); i++) |
5429 { | 5431 { |
5430 if(strcasecmp(library, libraries[i].name)) | 5432 if(strcasecmp(library, libraries[i].name)) |