首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在ecl中从对ffi:C-内联的调用返回字符串?

如何在ecl中从对ffi:C-内联的调用返回字符串?
EN

Stack Overflow用户
提问于 2017-11-29 21:50:46
回答 1查看 176关注 0票数 2

如何从调用ffi:c-inline返回字符串常量

我尝试过以下的变体,但都没有成功(ORGANIZATION是Constants.h中定义的常量):

代码语言:javascript
复制
(ffi:clines "#include \"./constants.h\"")
(ffi:c-inline () () :string "ORGANIZATION" :one-liner t)

上面的示例导致以下编译器错误:

未知表示类型:字符串

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-11-30 00:07:09

使用:cstring而不是:string

常客:

代码语言:javascript
复制
#define ORGANIZATION "foobar"

ecl.lsp:

代码语言:javascript
复制
(ffi:clines "#include \"./constants.h\"")
(defun myfun ()
  (ffi:c-inline () () :cstring "ORGANIZATION" :one-liner t))

从ecl提示符:

代码语言:javascript
复制
> (compile-file "ecl.lsp" :load t)
...
> (myfun)

"foobar"
> 

参考资料:https://ecl.common-lisp.dev/static/manual/Foreign-Function-Interface.html#Primitive-Types

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47562440

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档