On 2/13/07, Edgar Gonçalves edgar.goncalves@gmail.com wrote:
I'll try again making it work with my clsql project, and I'll post back my success.
Eh, guess not, after all. The problem seems to reside somewhere betwee clsql-odbc and CFFI's uffi-compat.lisp.
The following is related to the initialization function of the saved image. It assumes the cl-sql library was already loaded AND used properly before the image was saved.
What I do before using the foreign functions is to call (clsql-sys:database-type-load-foreign :odbc), and this calls uffi:load-foreign-library, defined in cffi's uffi-compat.lisp, with the odbc32.dll filename. This, by its turn, calls cffi:load-foreign-library, which is the same as to call cffi::use-foreign-library. So, even though the result should apparently be the same, I still get this:
** - Continuable Error FFI::FOREIGN-CALL-OUT: no dynamic object named "SQLAllocHandle" in library :DEFAULT
But then again, if I manually call (cffi::use-foreign-library "odbc32.dll"), what I get is something different:
*** - FFI::FOREIGN-CALL-OUT: #<INVALID FOREIGN-POINTER #x00000000> comes from a previous Lisp session and is invalid
What am I missing here?
-- Edgar Gonçalves