Sounds like you aren't using PIKE_MODULE_INIT and PIKE_MODULE_EXIT.
Well, this problem happens with all of the builtin modules. I'm focusing on Gmp right now, and they seem to use it, from what I can tell.
Or more likely; you aren't compiling with with a cl-compatible compiler, and thus don't get __declspec(dllexport) on PIKE_MODULE_{IN,EX}IT. In that case you need to patch module.h.
I tried manually including the __declspec ahead of PIKE_MODULE_INIT, and that didn't seem to make any difference, can __declspec appear twice on a function? According to MinGW, that's the preferred way to export symbols, so I'm not sure what the problem is. I've torn into pntld to see if I can find something wrong, but so far don't see anything misbehaved, it's as though the right information never makes it into the object files.
Incidentally, the gcc shipped is supposed to do auto-export, so maybe that's part of the problem, bit it's also supposed to shut off if I use __declspec.
Bill (further and further down the rabbit hole...)