2010-02-05 43 views
1

我想了解ctypes,以及它與IronClad上IronPython的關係。 (Ctypes應該在最新的IronPython版本中實現。)有人可以給出一個簡單的IronPython中的ctypes示例,可以在Mono/OSX上使用嗎?當試用標準演示時,我得到:IronPython上的ctypes的例子?

import ctypes 
SystemError: libdl.so 

我是否缺少明顯的東西?

更一般地說,ctypes如何與IronClad項目相關?

+0

您是使用IronPython 2.6還是Mono自帶的版本?我認爲與Mono捆綁在一起的版本相當老舊......如果Mac就像Linux一樣。 – djlawler 2010-02-06 16:43:53

+0

一切都是最新的。 – Tristan 2010-02-06 17:02:32

回答

1

我不知道你的第一個問題的答案(我不使用單聲道 - 抱歉),但我可以回答你的一般問題。

IronClad是一種適配器,它允許針對CPython API編寫的現有CPython擴展模塊在IronPython上無縫工作。另一方面,Ctypes是一個FFI(Foreign Function Interface),它允許Python代碼以平臺無關的方式調用本地代碼。

在ctypes之前,從Python訪問本機代碼的唯一方法是編寫與CPython緊密耦合的CPython擴展; ctypes消除了這種耦合,並允許它在任何實現ctypes的Python實現上工作。 IronClad允許所有舊版擴展繼續在IronPython上運行。不過,對於新的東西,ctypes是要走的路。

+0

沒錯,但我們可以有一個例子嗎?例如,我們如何使用ctypes來啓動類似clrtypes樣本的MessageBox? – jimbojw 2010-11-19 19:13:39

+0

這個問題是關於Mono/OSX - 一個Windows示例應該是一個不同的問題。 – 2010-11-19 19:20:06