It may be debugger weirdness, but when I actually traced through it with a debugger, this was the actual error I was receiving. I am currently compiling erlang from source. Ihad used a binary distribution before. Maybe the debugger was just off on line numbers and the return statement where it returns ERL_DE_LOAD_ERROR_INCORRECT_VERSION is not really where it is. I will know soon.
On Tue, Jun 9, 2009 at 2:47 PM, Adam Kocoloski <[email protected]> wrote: > On Jun 9, 2009, at 12:23 PM, Nathan Stott wrote: > > I'm trying very hard to get a couchdb build from source running on >> windows. >> I am using 0.9.0. I have built the couch_erl_driver.dll with the >> couch_erl_driver.c and the most recent version of ICU successfully, but >> when >> couch_util calls erl_ddll:load_driver I get error -136. I have debugged >> into the erlang source to find out more about this error and it is >> ERL_DE_LOAD_ERROR_INCORRECT_VERSION< >> http://src.opensolaris.org/source/s?defs=ERL_DE_LOAD_ERROR_INCORRECT_VERSION&project=/erlang-dtrace >> > >> >> I'm a bit stumped. I don't know how this could be the wrong version. >> >> This error comes from line 1557 of erl_bif_ddll.c in erlang 5.7.1 >> >> Anyone got any suggestions about where I go from here? >> > > > Hi Nathan, I'm confused. How does -136 translate to > > #define ERL_DE_LOAD_ERROR_INCORRECT_VERSION -5 >> > > I thought we decided on IRC that this code in erl_win32_sys_ddll.c > > int erts_sys_ddll_open_noext(char *dlname, void **handle) >> { >> HINSTANCE hinstance; >> >> if ((hinstance = LoadLibrary(dlname)) == NULL) { >> return ERL_DE_DYNAMIC_ERROR_OFFSET - GetLastError(); >> } else { >> *handle = (void *) hinstance; >> return ERL_DE_NO_ERROR; >> } >> } >> > > indicated that LoadLibrary(dlname) was NULL and GetLastError() returned > 126, which according to WinError.h is > > // >> // MessageId: ERROR_MOD_NOT_FOUND >> // >> // MessageText: >> // >> // The specified module could not be found. >> // >> #define ERROR_MOD_NOT_FOUND 126L >> > > Best, Adam >
