나는 Lisp에서 (Gdk) pixbuf에 내 자신의 put-pixel을 쓰려고했다. 마침내 CL에서 C 포인터를 어떻게 처리 할 수 있는지 깨달았을 때 새로운 장애물이 발생했습니다 - (gdk : pixbuf-get-pixels pb)는 저에게 음수를 반환합니다. 내 질문은 : 어떻게 든 유효한 포인터로 변환 할 수 있습니까? cffi : 외래 전환 및 cffi : 외국어 번역 (어쨌든 그들 사이의 차이점은 무엇입니까?)을 사용하려는 나의 시도는 실패했습니다.람다-gtk 음수 포인터
(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)))
음 :
이 값을 수정하는 가장 간단한 방법은 mod을 사용하는 것입니다. 나는 다른 접근법을 시도해야했다. – x13n