IronPython 스크립트 호출 C#dll 예
7920 단어 각본dll예제IronPython레저
우리는 여전히 이전 글의 코드를 그대로 사용했다. (사실 여기는 IronPython 디버거를 직접 사용하여 연결할 수 있으며, C#에 다시 삽입할 필요가 없다.)
참고: scriptEngine.AddToPath(Application.StartupPath); 이 코드는 dll 파일이 있는 디렉터리를 설정하는 것이 비교적 관건입니다.
- 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
- {
- public partial class Form1 : Form
- {
- public Form1()
- {
- InitializeComponent();
- }
-
- private void button1_Click(object sender, EventArgs e)
- {
- PythonEngine scriptEngine = new PythonEngine();
- scriptEngine.AddToPath(Application.StartupPath);
-
- scriptEngine.Execute(textBox1.Text);
- }
- }
- }
-
IronPython 스크립트에서 호출할 수 있는 DLL을 작성하기 시작했습니다. 두 가지 종류를 작성했습니다. 하나는 정적 함수 접근을 제공하고, 다른 하나는 속성과 일반 함수 접근을 제공하여 IronPython 스크립트에서 서로 다른 호출 방식을 구별합니다.코드는 다음과 같습니다.
- using System;
- using System.Collections.Generic;
- using System.Text;
-
- namespace IronPython_TestDll
- {
- public class TestDll
- {
- public static int Add(int x, int y)
- {
- return x + y;
- }
- }
-
- public class TestDll1
- {
- private int aaa = 11;
- public int AAA
- {
- get { return aaa; }
- set { aaa = value; }
- }
- public void ShowAAA()
- {
- global::System.Windows.Forms.MessageBox.Show(aaa.ToString());
- }
-
- }
- }
-
IronPython 스크립트의 코드를 살펴보겠습니다.
- 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()
-
비교적 중요한 것은 이 두 문장이다.
- clr.AddReferenceToFile("TronPython_TestDll.dll") -- DLL
- from TronPython_TestDll import * --
정적 방법은 직접 호출할 수 있으며, 일반적인 방법은 클래스를 정의한 다음에 접근해야 한다. (IronPython 자체의 클래스에 접근하는 것과 아무런 차이가 없다.)
실행 결과는 다음과 같습니다.
이제 아이론 파이톤에 대한 기대와 흥미가 충만해졌는지, 손을 흔들어 그 강함을 느껴라!
본문은'엽범작업실'블로그에서 나왔습니다. 전재는 작가에게 연락하세요!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Unity3D 시작하기(rolling ball) - 학습 노트만약 이 방법이 성공하지 못하면 각 구성 요소를 분류하여 다운로드할 수 있습니다. 항목은 3D를 선택하고 가져온 리소스는 None으로 선택할 수 있습니다. Scene: 각 게임마다 몇 개의 장면으로 구성되어 있으며,...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.