python與C 的互相呼叫

2021-07-30 13:29:37 字數 1630 閱讀 4556

python與c#的互相呼叫

一、c#呼叫python

新建乙個專案,新增引用:ironpython.dll,microsoft.scripting.dll(在ironpython的安裝目錄中)。

建立乙個文字檔案命名為hello.py,把該檔案新增的當前的專案中,並設定為總是輸出。

#hello.py

def welcome(name):

return "hello" + name

呼叫hello.py檔案中的方法:

static void main(string args)

二、python呼叫c#

示例一:呼叫dll中的方法

1.先準備乙個c#寫的dll,名稱為ironpython_testdll.dll

using system;

using system.collections.generic;

using system.text;

namespace ironpython_testdll

}public class testdll1

set

}public void showaaa()}}

2.呼叫c#的dll中的方法

import clr

clr.addreferencebypartialname("system.windows.forms")

clr.addreferencebypartialname("system.drawing")

from system.windows.forms import *

from system.drawing import *

clr.addreferencetofile("ironpython_testdll.dll")

from ironpython_testdll import *

a=12

b=6#靜態方法可以直接呼叫

c=testdll.add(a,b)

messagebox.show(c.tostring())

#普通方法需要先定義類

td=testdll1()

td.aaa=100

td.showaaa()

示例二:動態執行python**

using system;

using system.collections.generic;

using system.componentmodel;

using system.data;

using system.drawing;

using system.text;

using system.windows.forms;

using ironpython.hosting;

namespace testironpython

private void button1_click(object sender, eventargs e)}}

中寫的是如下**,會計算彈出100的提示框。

a=12

b=6c=testdll.add(a,b)

messagebox.show(c.tostring())

td=testdll1()

td.aaa=100

td.showaaa()

python與c 的互相呼叫

這個很簡單 標頭檔案,引用的方式是 ifdef debug undef debug include define debug else include endif 因為不這樣的話會報python38 d.lib缺少的錯誤。網上沒有什麼好的辦法。1,修改配置檔案 2,自己重新編譯python,我這邊稍...

go與c互相呼叫

此例子來自於go原始碼中,藉此來和大家分享一下兩者如何呼叫,網上很多文章語言不詳,也沒有乙個完整的測試例子 首先src 目錄下有 testcgowin目錄下 這裡的 obj目錄是cgo生成的 這裡需要展示的是go中如何呼叫c語言匯出函式,以及在c語言中如何呼叫go的匯出函式.關鍵是cthread.g...

go與c互相呼叫

此例子來自於go原始碼中,藉此來和大家分享一下兩者如何呼叫,網上很多文章語言不詳,也沒有乙個完整的測試例子 首先src 目錄下有 testcgowin目錄下 這裡的 obj目錄是cgo生成的 這裡需要展示的是go中如何呼叫c語言匯出函式,以及在c語言中如何呼叫go的匯出函式.關鍵是cthread.g...