> > > > > As for how to do it - on Windows you *can* get the 
> path of the 
> > > > > DLL that is executing your code, using GetModuleFileName(). 
> > > > > Hardly cross-platform, but can be done.
> > > >
> > > > That sounds pretty reasonable to me.
> > >
> > > True, and we already have our own find_my_exec() which 
> works for Unix too.
> > 
> > What does that have to do with this case?  We're trying to find the 
> > library here.
> 
> Oh, I see that GetModuleFileName() finds the location of your 
> library, not of the binary.  Nice.  So, for Win32, we use 
> that function call to find the locale directory?
> 
> We do have a comment in port/exec.c:
> 
>     if (GetModuleFileName(NULL, retpath, MAXPGPATH) == 0)
> 
> and I thought that did only binaries, not the library that 
> uses them.  I assume if the library is a DLL, it returns the 
> DLL location, and if it is in the binary, it returns the 
> binary location.

Nope, not quite.
With the parameter NULL, it will return for the current *process*.
You will need to use GetModuleHandle() (I think that should work) to get
the handle of the DLL. See
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dllproc
/base/getmodulehandle.asp

For static libaries, you need a different solution. Base that off the
EXE?

//Magnus


---------------------------(end of broadcast)---------------------------
TIP 3: if posting/reading through Usenet, please send an appropriate
      subscribe-nomail command to [EMAIL PROTECTED] so that your
      message can get through to the mailing list cleanly

Reply via email to