文档章节

Common Lisp通过CFFI调用C动态库

烟波
 烟波
发布于 2014/05/29 16:17
字数 89
阅读 218
收藏 0

以上篇博客Linux下动态链接库文件的编译与使用中的libmodulec.so库为例,编写调用代码:

(asdf:oos 'asdf:load-op :cffi)

(defpackage :cffi-user
  (:use :common-lisp :cffi))

(in-package :cffi-user)

(defvar *lib-handler* nil)

(defun load-foreign-lib ()
  (setq *lib-handler* 
        (load-foreign-library "libmodulec.so" :search-path "~/projects/swig_prj/")))

(defun exec-foreign-interface ()
  (foreign-funcall add-nums :int 4 :int 8 :int))

(defun unload-foreign-lib ()
  (close-foreign-library *lib-handler*))

执行过程及结果如下:




© 著作权归作者所有

共有 人打赏支持
烟波
粉丝 23
博文 30
码字总数 164649
作品 0
深圳
程序员
加载中

评论(2)

烟波
烟波

引用来自“BlinkD”的评论

这是我感觉commonlisp强大的地方,可以动态加载,load-foreign-lib还可以根据*features*不同平台进行适配。
有一句话说得不错,Lisp不区分加载期,编译期,运行期,任何时期都能干其它时期的事儿,这才是它最猛的地方
兰穆达
兰穆达
这是我感觉commonlisp强大的地方,可以动态加载,load-foreign-lib还可以根据*features*不同平台进行适配。
Common Lisp 操作Mysql

Common Lisp 通过CFFI可以调用其它语言的接口,如此,Common Lisp可以快速开发各种应用程序,本文将讲述在ubuntu系统下的一个简单的Common Lisp与mysql交互的实例。 准备 安装CFFI sudo apt...

烟波
2013/05/14
0
9
ECL 16.0.0 发布,Common-Lisp 语言解析器

ECL (Embeddable Common-Lisp) 是一个嵌入式的 Common-Lisp 语言解析器。 ECL 16.0.0 发布,此版本改进了现有 CL 库生态系统的各种互操作性,遵从 ANSI,提升跨平台的便捷性。 最显著的改进是...

oschina
2015/08/29
1K
1
MAC 下用 Common Lisp 调试 OpenGL 程序

MAC 下用 Common Lisp 调试 OpenGL 程序 环境搭建 - 运行环境: OSX 10.11.3 EI Capitan- Common Lisp: SBCL 使用 , 首先要安装这几个库 , , , . 先安装好 , 再用它来安装其他库. 安装过程如下...

FreeBlues
2016/06/05
178
0
Lisp的外部函数接口--CFFI

CFFI, Common Foreign Function Interface, 是一个 Common Lisp 的可移植的外部函数接口。 主要特性: an extensible foreign type system; callback support; support for foreign string ......

匿名
2012/01/31
1K
0
common lisp 利用cffi 操作mysql

利用clisp的管理工具 quicklisp 安装加载 cffi 和 cl-mysql (ql:quickload :cffi) (ql:quickload :cl-mysql) 连接 (connect :host"127.0.0.1":user"root":password"") (query"use test") 这样......

铅笔777
2013/11/16
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Java Web--增删改查之二界面后台java代码(转载参考)

/** *  *//** * @author Administrator * */package dao; import java.sql.*;public class DBConn {/** * 链接数据库 * @return */  ...

小橙子的曼曼
17分钟前
1
0
Redis源码阅读笔记-对象及其类型和编码

总结之《Redis设计与实现》 对象 Redis中是使用对象来便是数据库中的键和值。 结构 // server.h...#define LRU_BITS 24...typedef struct redisObject { unsigned type:4; ...

Jian_Ming
30分钟前
1
0
laravel框架常用目录路径

laravel框架常用目录路径 app_path()app_path函数返回app目录的绝对路径:$path = app_path();你还可以使用app_path函数为相对于app目录的给定文件生成绝对路径:$path = app_p...

高处胜寒
32分钟前
0
0
记一次winserver2003系统,https无法访问,内存占用持续增加,解决办法

先交代一下环境: win server2003系统,系统装在hyper-v虚拟机里 大概2016年底的镜像,距离今天两年左右 病症:大概9月10号左右用这个镜像还可以访问https,但是今天用这个镜像新装的系统,就...

阳阳露
47分钟前
3
0
Vue学习资料

一直以为Vue是依赖nodejs的。 作为前端也可以耦合性就很低了。 //npm包管理器 进行管理npm install vue//初始化一个项目vue init//本地调试npm run dev//编译完成 ...

大灰狼wow
今天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部