comparison base/src/java/nonstandard/SharedLib.d @ 58:8a5386b204bb

[swt win] fix dll symbol loading
author Frank Benoit <benoit@tionex.de>
date Sat, 28 Mar 2009 02:46:49 +0100
parents 65761bc28ab2
children 9f4c18c268b2
comparison
equal deleted inserted replaced
57:e2ca9bdc80f2 58:8a5386b204bb
21 struct SharedLib { 21 struct SharedLib {
22 static void loadLibSymbols( SymbolVersioned2[] symbols, String libname, int major, int minor ){ 22 static void loadLibSymbols( SymbolVersioned2[] symbols, String libname, int major, int minor ){
23 version(Tango){ 23 version(Tango){
24 if (auto lib = tango.sys.SharedLib.SharedLib.load(libname)) { 24 if (auto lib = tango.sys.SharedLib.SharedLib.load(libname)) {
25 foreach( inout s; symbols ){ 25 foreach( inout s; symbols ){
26 if( s.major < major ) continue; 26 if( s.major > major ) continue;
27 if( s.major == major && s.minor > minor ) continue; 27 if( s.major == major && s.minor > minor ) continue;
28 *s.symbol = lib.getSymbol( tango.stdc.stringz.toStringz(s.name ) ); 28 *s.symbol = lib.getSymbol( tango.stdc.stringz.toStringz(s.name ) );
29 if( s.symbol is null ){ 29 if( s.symbol is null ){
30 getDwtLogger.error( __FILE__, __LINE__, "{}: Symbol '{}' not found", libname, s.name ); 30 getDwtLogger.error( __FILE__, __LINE__, "{}: Symbol '{}' not found", libname, s.name );
31 } 31 }