2017-10-09 40 views

回答

1

當參數是輸出並且有預先存在的類型圖可以幫助時,需要告訴SWIG。這裏有一個例子:

api.h

typedef int TAPIINT32; 
void Foo(TAPIINT32& iResult); 

api.cpp

#include "api.h" 

void Foo(TAPIINT32& iResult) 
{ 
    iResult = 5; 
} 

api.i

%模塊API

%{ 
#include "api.h" 
%} 

%include <windows.i> 
%apply int* OUTPUT {TAPIINT32t&}; 
%include "api.h" 

%apply命令告訴SWIG將現有的類型圖應用於指定的類型。在這種情況下,預先存在的int* OUTPUT typemap應用於所有TAPIINT32&參數。請注意,OUTPUT typemap禁止傳遞參數,並將其作爲附加返回值返回。

輸出:

>>> import api 
>>> api.Foo() 
5 
+0

非常感謝你much.It完美地解決了這個問題。 – George

相關問題