Pythonの呼び出しC ++クラスメソッド

myTest.cpp:

#include <iostreamの> 
する#include <ベクトル> クラスのMyTest 
{ パブリック
    のMyTest(); のMyTest();
    int型 MYTEST(int型 * MYDATA、int型dataNum)。プライベート
}; 
MyTestに::のMyTest()
{ 
} 
のMyTest ::のMyTest()
{ 
} int型のMyTest :: MYTEST(INT * MYDATA、INT dataNum)
{ 場合(dataNum> 0 
    { ため、私は= size_t型(0 ; iはdataNumを<; I ++



    







    
        
        {
             * MYDATA = I + 2 
            MYDATA + = 1 ; 
        } 
    } 

    戻り 0 
} 


のextern  " C " { 

    MyTestというこのmyobj。

    INT MYTEST(INT * MYDATA、INT dataNum)
    { 
        戻りmyObj.myTest(MYDATA、dataNum)を、
    } 

}

 コンパイル:G ++ testpy.cpp -fPIC -shared -o libtest.so -std = C ++ 11

 

 

pythonCallCpp.py:

!は/ usr / binに/のpython - * -コーディング:UTF-8 - * - 

からのctypesをインポート *
 インポートのctypes 

INPUT = c_intの* 100 
の入力 = INPUT()

ので、 = ctypes.cdll.LoadLibraryの    
LIB =ので、(" は/ opt /fp100/libtest.so " 印刷 ' MYTEST(INT * MYDATA、INT dataNum)'   

lib.myTest(入力、 100 

プリント入力[0]
 印刷入力[1 ]
 印刷入力[2 ]
 印刷入力[3]

 パイソンpythonCallCpp.py結果:

2
3
4
5

おすすめ

転載: www.cnblogs.com/lovebay/p/11264073.html