CPython有类似.net c#PInvoke吗?
例如我有some.dll或some.so,并希望在运行时注册一些函数并开始在我的程序中使用它们。
在C#中你可以这样做:
// Marshal.cs
using System;
using System.Runtime.InteropServices;
namespace CSharpIterators
{
class MainClass
{
[DllImport("msvcrt.dll")]
public static extern int puts([MarshalAs(UnmanagedType.LPStr)] string m);
[DllImport("msvcrt.dll")]
internal static extern int _flushall();
public static void Main (string[] args)
{
puts("Hello World!");
_flushall();
}
}
}
python有类似的功能吗?
提前致谢!
答案 0 :(得分:6)
您可以使用Python ctypes
module来调用DLL中的函数。
答案 1 :(得分:0)
另一种选择是使用swig之类的工具来创建C / C ++代码的Python接口: http://www.swig.org/
创建包装器的语法与C加上一些预处理指令非常相似。