diff --git a/src/classlib/module.cc b/src/classlib/module.cc index 22f100b..1d6e982 100644 --- a/src/classlib/module.cc +++ b/src/classlib/module.cc @@ -158,7 +158,9 @@ namespace PW3270_NAMESPACE FreeLibrary(kernel); if(!hModule) - throw exception("Can't load %s: %s",dllname.c_str(),session::win32_strerror(rc)); + { + throw exception("%s: %s",dllname.c_str(),session::win32_strerror(rc).c_str()); + } #else dllname += ".so"; diff --git a/src/classlib/session.cc b/src/classlib/session.cc index d77d26c..ada6ecc 100644 --- a/src/classlib/session.cc +++ b/src/classlib/session.cc @@ -521,8 +521,21 @@ { static char buffer[4096]; + memset(buffer,0,sizeof(buffer)); + if(FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM,NULL,e,MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),buffer,sizeof(buffer),NULL) == 0) + { snprintf(buffer,4095,"Windows error %d", e); + } + + for(size_t f=0;f