python dll 指针_python 调用dll中c或c++语言的带指针方法,

在项目开发中遇到了,python需要去调用一个动态链接库dll中的c++方法。这个方法的参数为一个指针类型的参数,一个bool类型参数,

在python中并未对数字类型进行区分。

int LP_Agc ( double * a,

bool b= true

)

所以在调用这个方法之前,

第一步要将python中的类型转换为c语言类型。

这个应该是python自带的

a = c_double(1.0)

#同理

b = c_double(True)

#python中还有c_int(),c_float()等。需要什么用什么。可以在 _init_.py中找到这些方法。

第二步 ,lgc中的第一个参数为 double类型的指针类型。。

在pythong中同样有使用指针的方法。pointer()

pcdi = pointer(c_double(1.0))

即:

dll.LP_Agc(pointer(c_double(1.0),c_bool(True)) 就可以成功调用方法。

byref(n)返回的相当于C的指针右值&n,本身没有被分配空间:所以他只能作为参数。

pointer返回的相当于指针左值T* p=&n,可以改变,可以取地址:

在C++中调用DLL中的函数 (3)

1.dll的优点 代码复用是提高软件开发效率的重要途径.一般而言,只要某部分代码具有通用性,就可将它构造成相对独立的功能模块并在之后的项目中重复使用.比较常见的例子是各种应用程序框架,ATL.MFC等 ...

你可能感兴趣的:(python,dll,指针)