2012-04-11 22 views
0

我有一個C++程序:如何從python程序調用C++對象中定義的函數?

class X 
{ 
    private: 
     int a; 
    public: 
     int func(char *str); 
}; 

現在我要調用的函數func在我的Python程序。我該怎麼做?

我已經使用ctypes從我的Python程序成功調用了C函數。 但是我似乎無法弄清楚如何調用C++對象內定義的函數。

我已經與ctypes合作過,所以我想弄清楚如何完成它。不過,我接受其他技術。此外,我的項目提出了一個constarint,我不應該在我的C++程序中使用包裝函數。

+0

誰認爲這是「不是一個真正的問題」?爲什麼? – 2012-04-11 07:51:43

回答

1

您標記了問題ctypes,但不能直接從ctypes實例化C++對象。您可以將C++對象封裝在C接口中,然後使用ctypes。或者你可以編寫一個可以包含C++代碼的Python擴展模塊。

+0

你的意思是說我首先需要學習編寫python擴展模塊(我不應該使用包裝函數)來完成我的任務。 – Sudip 2012-04-11 06:31:34

+0

你的問題沒有提到你在評論中添加的額外約束。請你糾正這個問題。 – 2012-04-11 06:43:39

+0

我編輯了我的問題以包含我的約束。現在,你能告訴我如何前進嗎? – Sudip 2012-04-11 09:04:39

2

結賬Boost::Python

+0

謝謝你的朋友..但我不應該寫封裝函數,我將需要在提升Python寫.. – Sudip 2012-04-11 06:23:43

+0

「應該」?這不是你的項目嗎? – 2012-04-11 07:44:11

0

嘗試http://swig.org/ 多年前我用swig在wxPython中包裝了一些c/C++代碼。 我不記得太多的細節,但我認爲swig很容易使用。

希望有所幫助。

+0

thaks ..我會檢查它。 – Sudip 2012-04-11 06:32:34

相關問題