2016-09-29 49 views
1

剛開始深入研究SIP。我有一個包含下面的公共方法.h文件:Python/SIP規範文件 - kwargs和NULL

void Allocate(int width, int height, int pitch, bool withHost, float *devMem = NULL, float* hostMem = NULL); 

我創建了一個相應的.sip文件:

1 //SIP wrapper for CUDA Image 
    2 
    3 class CudaImage 
    4 { 
    5 %TypeHeaderCode 
    6 #include "cudaImage.h" 
    7 %End 
    8 
    9 public: 
10  CudaImage(); 
11 
12  void Allocate(int width, int height, int pitch, bool withHost, float *devMem=NULL, float *hostMem=NULL) /KeywordArgs="All"/; 
13  double Download(); 
14 
15 
16  int width; 
17  int height; 
18  int pitch; 
19 }; 

使用cmake,我已經構建工作,可以導入模塊進入Python並可以調用構造函數(因此成功有限)。我也可以調用Allocate方法。不幸的是,在Python方面,我無法獲得暴露的float *devMem=NULLfloat *hostMem=Null參數。我已經完成了SIP文檔,沒有註釋失蹤。

最終目標是將一個numpy數組(我相信.data屬性)傳遞給hostMem參數。

如何才能在SIP中暴露指針?什麼指針與默認,NULL,參數?

(Python的3.5,PyQt4中,SIP 4.18.x)

回答

0

你可以嘗試 「/在/」 註釋:

void Allocate(int width, int height, int pitch, bool withHost, float* devMem /In/ = NULL, SIP_PYOBJECT *hostMem /In/ = NULL) /KeywordArgs="All"/; 

請讓我知道,如果它的工作原理。