Mercurial > octave
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) |