Yaroslav Kavenchuk wrote:

>> Oops, if use libintl_sprintf instead of sprintf - all works:
>> Hmm. I do not know why sprintf function does not work in clisp/mingw.
>if define sprintf as function from msvcrt.dll - all works:
Oh boy!

>Why there is no opportunity to specify from what library link function?
You probably mean in CFFI? UFFI has :module and CLISP has :library

>And if I shall link some libraries with identical names of functions -
>what to do?
"Implementation-dependent" and underspecified
On many UNIX systems, the more recently opened libraries probably shadow older 
ones.
Now, do you know in which order the libraries where opened? The general answer 
is "no". E.g. did you read somewhere in clisp impnotes in what order it's 
reopening libraries when restarting from an image?
Do you know what libraries got loaded in what order, when you're just a library 
programmer and don't know what the user is doing (and what s/he loaded)?
No, you don't.

There are several reasons why I prefer programmers to state which library or 
module thex expect a function to come from.  It helps do the right thing.
(But the most important reason back in 1995 was that the Amiga had no 
introspection of shared libraries. You *had* to tell you want e.g. Close from 
*that* specific library, and it was a reasonably way to avoid conflicts).

>I do not know what library contains bad sprintf function.
Maybe you can figure it out using (foreign-address #<foreign-function>) and see 
if you can relate that to the addresses of the .dll loaded into the current 
process?

Regards,
        Jorg Hohle
_______________________________________________
cffi-devel mailing list
cffi-devel@common-lisp.net
http://common-lisp.net/cgi-bin/mailman/listinfo/cffi-devel

Reply via email to