c語言是結構化程式設計語言,python是物件導向的語言,二者之間有條「代溝」。
python呼叫c語言,沒有問題,這叫「向下相容」。
但是,反過來則不行,不許c呼叫python,那叫「以下犯上」。
敢這樣說,是因為我有實驗的證據。
為了mt4程式設計的需要,我用lcc編譯的程式呼叫python,結果,撞上了南牆。
程式極其簡單:
#include "python.h"
#include int main()
我用的是python 2.6,因此設定鏈結庫python26.lib。一切按規矩做的。
但是,編譯時,看到以下出錯資訊:
ccallp.obj .text: undefined reference to '__imp__py_initialize'
ccallp.obj .text: undefined reference to '__imp__pyrun_******stringflags'
ccallp.obj .text: undefined reference to '__imp__py_finalize'
忙活了5、6小時之後,問題依舊。開始懷疑編譯器本身有問題。
想到python是用vc2003以後版本編譯的,早就物件導向了,只好試試vc了。
把上面的**放到vc6的檔案裡編譯、執行,一切正常。
從網上一些帖子看,在linux下也有類似問題。gcc編譯時出錯,用g++就沒問題。
由此可見,所謂「c呼叫python」,準確地說,應該是「用c++呼叫python」。
C 呼叫Python語言
是一種在 net和 mono 上實現的 python 語言 2.開啟vs,新增兩個引用,在ironpython的安裝根目錄下面選擇ironpython.dll和microsoft.scripting.dll using microsoft.scripting.hosting using ironpy...
Python呼叫C語言
python中的ctypes模組可能是python呼叫c方法中最簡單的一種。ctypes模組提供了和c語言相容的資料型別和函式來載入dll檔案,因此在呼叫時不需對原始檔做任何的修改。也正是如此奠定了這種方法的簡單性。示例如下 實現兩數求和的c 儲存為add.c sample c file to ad...
python 呼叫c語言函式
雖然python是萬能的,但是對於某些特殊功能,需要c語言才能完成。這樣,就需要用python來呼叫c的 了 具體流程 c編寫相關函式 編譯成庫 然後在python中載入這些庫,指定呼叫函式。這些函式可以char int,float,還能返回指標。以下示例 通過python呼叫c函式,返回 hell...