Archived

This forum has been archived. Please start a new discussion on GitHub.

Apparent inconsistencies in error handling across platforms

Dear ZeroC,

I'd just like to start out by saying that I appreciate all of the hard work that you guys have put into ICE!

I will admit that I have not looked at the whole code base, just the source for the C++ version of IceBox, in relation to loading a dll. It looks like the error handling/messaging for _WIN32 versions have been left out. There is code present for the Linux versions to get the last error message after platform API calls, but none appears to be present for _WIN32.

If this is indeed the case, I would like to request that the same level of care be applied to all of the supported platforms.

I ran across this because recently I have been having issues getting the C++ version of IceBox to work properly, and the only thing it would tell me is the following.

"ServiceManager: unable to load entry point `" + entryPoint + "'"

The error message would have been more helpful had an error code been present. Running it on Linux I probably would have received a more meaningful error message.

The problematic code can be found in the following files/lines[func]:
ServiceManagerI.cpp/580-592[start]
DynamicLibrary.cpp/158,180[load]|192[getSymbol]

Jon

Comments

  • bernard
    bernard Jupiter, FL
    Hi Jon,

    Thank you pointing this out. We should indeed provide a more detailed error message when a DLL fails to load on Windows.

    Best regards,
    Bernard