Changeset 5481:603d51e78e41 in roaraudio
- Timestamp:
- 04/23/12 13:05:59 (11 years ago)
- Branch:
- default
- Phase:
- public
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
ChangeLog
r5479 r5481 15 15 * Updated build options for RAT (pr0). 16 16 * Work around bugs in win32 while using stdvios (pr0). 17 * Added support to load plugins on win32 (pr0). 17 18 18 19 v. 1.0beta0 - Fri Mar 16 2012 19:39 CET -
libroar/roardl.c
r5446 r5481 59 59 #if defined(ROAR_HAVE_LIBDL) 60 60 void * handle; 61 #elif defined(ROAR_TARGET_WIN32) 62 HMODULE handle; 61 63 #endif 62 64 }; … … 198 200 199 201 ROAR_DBG("_roardl2ldl(lhandle=%p) = %p", lhandle, (void*)(lhandle->handle)); 202 return lhandle->handle; 203 } 204 #elif defined(ROAR_TARGET_WIN32) 205 static HMODULE _roardl2winhandle(struct roar_dl_lhandle * lhandle) { 206 if ( (void*)lhandle < (void*)128 ) { 207 return NULL; 208 } 200 209 return lhandle->handle; 201 210 } … … 383 392 return NULL; 384 393 } 394 #elif defined(ROAR_TARGET_WIN32) 395 ret->handle = LoadLibrary(filename); 396 397 if ( ret->handle == NULL ) { 398 roar_mm_free(ret); 399 return NULL; 400 } 385 401 #else 386 402 roar_mm_free(ret); … … 399 415 if ( ret->handle != NULL ) 400 416 dlclose(ret->handle); 417 #elif defined(ROAR_TARGET_WIN32) 418 if ( ret->handle != NULL ) 419 FreeLibrary(ret->handle); 401 420 #endif 402 421 roar_mm_free(ret); … … 453 472 ret = dlclose(_roardl2ldl(lhandle)); 454 473 } 474 #elif defined(ROAR_TARGET_WIN32) 475 if ( lhandle->handle == NULL ) { 476 ret = 0; 477 } else { 478 if ( FreeLibrary(_roardl2winhandle(lhandle)) ) { 479 ret = 0; 480 } else { 481 ret = -1; 482 } 483 } 455 484 #else 456 485 ret = -1; … … 482 511 483 512 return ret; 513 #elif defined(ROAR_TARGET_WIN32) 514 FARPROC ret = GetProcAddress(_roardl2winhandle(lhandle), sym); 515 return (void*)ret; 484 516 #else 485 517 ROAR_DBG("roar_dl_getsym(lhandle=%p, sym='%s', type=%i) = NULL // errno=NOSYS", lhandle, sym, type, ret); … … 611 643 (void)lhandle; 612 644 return dlerror(); 645 #elif defined(ROAR_TARGET_WIN32) 646 roar_err_from_errno(); 647 return roar_error2str(roar_error); 613 648 #else 614 649 return NULL;
Note: See TracChangeset
for help on using the changeset viewer.