c 基於boost開發python擴充套件

2021-10-04 18:06:48 字數 1411 閱讀 5810

boost庫編譯可以看看boost庫編譯,就不多贅述了

使用vs建立乙個dll工程,新增python、boost庫頭檔案目錄,依賴庫包目錄

匯出方法,一定要加#define boost_python_static_lib 表示使用靜態連線,不然編譯不過去;其他的方法沒有試過,大家可以試試....

#ifndef boost_python_static_lib

#define boost_python_static_lib

#endif

#include #include using namespace std;

namespace bp = boost::python;

void hello()

// 這裡只能使用int a,不能使用引用 int& a,引用會報錯,python只支援物件的引用

void print_int(int a)

// 這裡const char*也可以使用const std::string&

// 如果單純的字串,使用const char*就行

// 如果帶有\0 或者其他字元的二進位制 建議用const std::string&

void print_str(const char* str)

// object可以是任意型別,可以通過boost::python::extract方法進行轉換

void print_object(bp::object obj)

boost_python_module(boostpython)

匯出類

#ifndef boost_python_static_lib

#define boost_python_static_lib

#endif

#include #include using namespace std;

namespace bp = boost::python;

class bptest

bptest(int a) : m_a(a) {}

~bptest(){}

void set(int a)

int get()

static void print_a(int a = 0)

private:

int m_a;

};boost_python_module(boostpython)

生成boostpythondll; 把字尾名改為boostpython.pyd,放到python的安裝目錄下的dlls目錄裡面

建立python工程,匯入import boostpython  就可以使用了

最後強調一點 dict、list、匯出類、python類都是引用型別,即通過引數傳進去是可以修改裡面的值!!!

基於C 開發的2048

昨天花了一晚上的時間寫了乙個過氣的小遊戲 2048,一直到晚上十二點多才把鍵盤響應事件寫好,感覺自己的腦子不行,還要再補補。先來一波執行的效果 主要演算法,可以實現不同邊長的2048 2private void up 316 17 18 19 20private void up remove bla...

NLP實戰 基於列舉實現中文分詞(python)

邏輯 例子 我們經常有意見分歧 詞典 我們 經常 有 有意見 意見 分歧 列舉滿足詞典的所有可能情況 我們 經常 有 意見 分歧 我們 經常 有意見 分歧 實現所需的資料需求 給定詞典 我們 學習 人工 智慧型 人工智慧 未來 是 另外我們給定unigram概率 p 我們 0.25,p 學習 0.1...

使用C 開發CAD,基於ActiveX

建立於autocad的連線 using system using system.collections.generic using system.linq using system.text using autodesk.autocad.interop using autodesk.autocad....