相关疑难解决方法(0)

从Python调用C/C++?

构建Python绑定到C或C++库的最快方法是什么?

(如果这很重要,我正在使用Windows.)

c c++ python

493
推荐指数
16
解决办法
39万
查看次数

通过 ctypes 使用扩展 dll 中的类所需的帮助

我在 Visual Studio 中编写了以下代码来创建扩展 DLL。

class A
{
     public:
      void someFunc()
      {

      }
};


  extern "C" __declspec(dllexport) A* A_new() 
  { 
     return new A(); 
  }

 extern "C" __declspec(dllexport) void A_someFunc(A* obj) 
  { 
    obj->someFunc(); 
  }

  extern "C" __declspec(dllexport) void A_destruct(A* obj) 
  { 
    delete obj; 
  }
Run Code Online (Sandbox Code Playgroud)

我想在python中使用ctypes来使用A类。我在wrapper.py中编写了以下代码——

从 ctypes 导入 Windll

libA = Windll.LoadLibrary("c:\ctypestest\test.dll")

A类: def init (self): self.obj = libA.A_new()

def __enter__(self):
    return self

def __exit__(self):
   libA.A_destruct(self.obj)

def some_func(self):
   libA.A_someFunc(self.obj)
Run Code Online (Sandbox Code Playgroud)

在 python 2.7.1 命令提示符下,我执行以下操作 -

import 包装器 as w ----> 工作正常

a …
Run Code Online (Sandbox Code Playgroud)

python ctypes

2
推荐指数
1
解决办法
2848
查看次数

如何在不使用Boost的情况下将C++类暴露给Python?

我需要使用Python C API将C++类公开到嵌入式python中.

换句话说,就像这样: 将C++类实例暴露给python嵌入式解释器, 但根本不使用Boost.

我想把它放在这个应用程序是相当老的,编译器,环境等......无法处理Boost.

c++ python class extending

2
推荐指数
1
解决办法
1483
查看次数

标签 统计

python ×3

c++ ×2

c ×1

class ×1

ctypes ×1

extending ×1