小编x13*_*13n的帖子

如何判断是否使用了glibc

我正在尝试为大型框架实现回溯功能,该框架用于不同的平台和操作系统.在其中一些中,它与glibc相关联,而在另一个中,使用了不同的东西(例如uclibc).backtrace()函数仅存在于前者中.

有没有办法判断glibc是否被使用?任何#define?我无法在glibc手册中找到答案.我知道在编译期间我不能有链接时间信息,但我想包含文件必须有所不同.至少必须在某处声明回溯.我想检查它而不必强制将显式标志传递给编译器.

c c++ glibc

26
推荐指数
3
解决办法
1万
查看次数

Lisp中的指针?

我最近开始学习Lisp并想编写一个使用gtk接口的程序.我已经安装了lambda-gtk绑定(在CMUCL上).我想在pixbuf上放置pixel/getpixel能力.但我发现我无法直接访问内存.(或者只是不知道怎么做)

函数(gdk:pixbuf-get-pixels pixbuf)给我一个数字 - 内存地址,我猜.在C++中,我可以轻松找到我需要的像素.有没有办法在Lisp中编写自己的putpixel?

gtk common-lisp gdk

7
推荐指数
1
解决办法
2616
查看次数

lambda-gtk负指针

我试图在Lisp中用(Gdk)pixbuf编写自己的put-pixel.当我终于意识到我如何操作CL中的C指针时,出现了新的障碍 - (gdk:pixbuf-get-pixels pb)返回负数.我的问题是:我能以某种方式将其转换为有效指针吗?我尝试使用cffi:convert-from-foreign和cffi:translate-from-foreign(它们之间有什么不同?)失败了.

以下是我的实际(不工作)代码:

(defun put-pixel (pixbuf x y r g b)
  (let ((p (+ (gdk:pixbuf-get-pixels pixbuf) (* x (gdk:pixbuf-get-n-channels pixbuf)) (* y (gdk:pixbuf-get-rowstride pixbuf)))))
    (setf (cffi:mem-aref p :unsigned-char 0) r)
    (setf (cffi:mem-aref p :unsigned-char 1) g)
    (setf (cffi:mem-aref p :unsigned-char 2) b)))
Run Code Online (Sandbox Code Playgroud)

lisp gtk common-lisp gdk

3
推荐指数
1
解决办法
205
查看次数

标签 统计

common-lisp ×2

gdk ×2

gtk ×2

c ×1

c++ ×1

glibc ×1

lisp ×1