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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM