回覆列表
  • 1 # 魯賓孫印象

    如果呼叫 shell

    透過exec dos當式,或者 shell 或者中斷都可以的

    都可以的。

    也可以編譯成 動態庫 或者so.

  • 2 # 小小猿愛嘻嘻

    這裡介紹一種簡單的方式—編譯為dll或so動態庫,然後再使用ctypes模組呼叫就行,下面我簡單介紹一下實現過程,主要內容如下:

    編譯為dll

    這種方式主要應用在Windows平臺下,將C語言程式編譯為一個dll動態庫,然後直接使用ctypes模組載入使用就行,測試過程如下:

    1.為了更好的說明問題,這裡我利用VS2017編譯了一個dll檔案,源C程式碼如下,非常簡單,一個相乘函式:

    2.編譯完成後,我們在同級目錄下新建一個py檔案,直接使用ctpyes模組載入剛才編譯好的dll檔案就行,如下,非常簡單:

    編譯為so

    這種方式主要應用在Linux環境下,基本過程和Windows平臺下差不多,也是先編譯為so動態庫檔案,然後再使用ctypes模組載入使用就行,測試過程如下:

    1.測試C程式如下,兩個簡單的函式,一個相加一個相乘,接著使用gcc命令將這個C檔案編譯為so檔案,編譯命令“gcc -shared -Wl,-soname,test -o test.so -fPIC test.c”:

    2.編譯完成後,在同級目錄下也新建一個py檔案,也直接使用ctypes模組載入so檔案使用就行,程式碼幾乎不變,如下:

    直接執行這個程式,效果如下,已經成功呼叫C函式:

  • 3 # new-小組會

    我本人沒做過完整的,但是在專案中見到過呼叫。cpp程式寫好後,必然有一個main函式在,或者你就寫一個main.cc,把main函式放在這個檔案裡。編譯好後,把編譯後的程式放在Python程式根目錄的某個資料夾內(其實隨便放哪兒,不過為了方便),然後在Python檔案中就可以直接匯入專案名,也就是c程式的名字,然後就能用了,不過這是直接從main函式入口呼叫,如何呼叫其他的函式,這個我沒用過,不過應該大同小異吧。

  • 中秋節和大豐收的關聯?
  • 去醫院檢查各項“腫瘤標誌物”都是正常的卻為何還是患癌呢?