diff --git a/testDynamicLoader.cxx b/testDynamicLoader.cxx new file mode 100644 index 0000000000000000000000000000000000000000..1484cf39d76b74c704b102d8845606de55bf6d44 --- /dev/null +++ b/testDynamicLoader.cxx @@ -0,0 +1,58 @@ +/*========================================================================= + + Program: KWSys - Kitware System Library + Module: testDynamicLoader.cxx + + Copyright (c) Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.kitware.com/Copyright.htm for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#include "kwsysPrivate.h" + +#include KWSYS_HEADER(DynamicLoader.hxx) +#include KWSYS_HEADER(ios/iostream) + +// Work-around CMake dependency scanning limitation. This must +// duplicate the above list of headers. +#if 0 +# include "DynamicLoader.hxx.in" +# include "kwsys_ios_iostream.h.in" +#endif + +int TestDynamicLoader(const char* libname, const char* symbol) +{ + kwsys::LibHandle l = kwsys::DynamicLoader::OpenLibrary(libname); + if( l ) + { + kwsys_ios::cerr + << kwsys::DynamicLoader::LastError() << kwsys_ios::endl; + return 1; + } + kwsys::DynamicLoaderFunction f = + kwsys::DynamicLoader::GetSymbolAddress(l, symbol); + if( f ) + { + kwsys_ios::cerr + << kwsys::DynamicLoader::LastError() << kwsys_ios::endl; + return 1; + } + int success = kwsys::DynamicLoader::CloseLibrary(l); + if( success ) + { + kwsys_ios::cerr + << kwsys::DynamicLoader::LastError() << kwsys_ios::endl; + return 1; + } + return 0; +} + +int main(int , char *[]) +{ + int res = TestDynamicLoader("foobar.lib", "foobar"); + + return res; +}