comparison liboctave/util/oct-shlib.cc @ 21236:5d23ea5c733a

eliminate configuration macros from lo-cutils.h * lo-cutils.h, lo-cutils.c (octave_w32_library_search): Delete. Don't include windows.h * oct-shlib.cc: (octave_w32_library_search): Delete extern decl. (octave_w32_shlib::octave_w32_shlib): Declare msg as const char*. (octave_w32_shlib::search): Call GetProcAddress directly.
author John W. Eaton <jwe@octave.org>
date Tue, 09 Feb 2016 13:37:25 -0500
parents f7d1050b9b53
children 40de9f8f23a6
comparison
equal deleted inserted replaced
21234:20a824cd1d9e 21236:5d23ea5c733a
343 handle = LoadLibrary (file.c_str ()); 343 handle = LoadLibrary (file.c_str ());
344 344
345 if (! handle) 345 if (! handle)
346 { 346 {
347 DWORD lastError = GetLastError (); 347 DWORD lastError = GetLastError ();
348 char *msg; 348 const char *msg;
349 349
350 switch (lastError) 350 switch (lastError)
351 { 351 {
352 case ERROR_MOD_NOT_FOUND: 352 case ERROR_MOD_NOT_FOUND:
353 case ERROR_DLL_NOT_FOUND: 353 case ERROR_DLL_NOT_FOUND:
354 msg = "could not find library or dependents"; 354 msg = "could not find library or dependencies";
355 break; 355 break;
356 356
357 case ERROR_INVALID_DLL: 357 case ERROR_INVALID_DLL:
358 msg = "library or its dependents are damaged"; 358 msg = "library or its dependencies are damaged";
359 break; 359 break;
360 360
361 case ERROR_DLL_INIT_FAILED: 361 case ERROR_DLL_INIT_FAILED:
362 msg = "library initialization routine failed"; 362 msg = "library initialization routine failed";
363 break; 363 break;
374 { 374 {
375 if (handle) 375 if (handle)
376 FreeLibrary (handle); 376 FreeLibrary (handle);
377 } 377 }
378 378
379 extern "C"
380 {
381 void * octave_w32_search (HINSTANCE handle, const char * name);
382 }
383
384 void * 379 void *
385 octave_w32_shlib::search (const std::string& name, 380 octave_w32_shlib::search (const std::string& name,
386 octave_shlib::name_mangler mangler) 381 octave_shlib::name_mangler mangler)
387 { 382 {
388 void *function = 0; 383 void *function = 0;
394 std::string sym_name = name; 389 std::string sym_name = name;
395 390
396 if (mangler) 391 if (mangler)
397 sym_name = mangler (name); 392 sym_name = mangler (name);
398 393
399 function = octave_w32_library_search (handle, sym_name.c_str ()); 394 function = reinterpret_cast <void *> (GetProcAddress (handle, sym_name.c_str ()));
400 395
401 return function; 396 return function;
402 } 397 }
403 398
404 #elif defined (HAVE_DYLD_API) 399 #elif defined (HAVE_DYLD_API)