• 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,可以改变,可以取地址:

  • 相关阅读:
    php 记录 一些函数语句
    css hack 笔记 for ie8,ie7
    ubuntu 常用 apt更新命令
    JS iframe 跨域
    xdebug配置注意事项
    (matlab)plot画图的颜色线型
    关于iframe中的js跨站
    201202编程笔记
    各种语言中的unix timestamp
    php xml 摘抄
  • 原文地址:https://www.cnblogs.com/zhangkaikai/p/6064391.html
Copyright © 2020-2023  润新知