![]() |
Common Language Extension(CLE) |
|||
For python calls c#, here presents a new method, which ues cle developed by srplab..A function “Add” is defined in lua which returns the sum of two input integers. The function also calls python method “Show” to print the result. There are three steps: 1. Init cle, create service group, and create service. 2. Define extends class of StarObjectClass, and defines a new function “Add” of it. 3. Create interface object, named “TestClass”.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using star_csharp;
namespace AddFunctionService
{
//--Step2
: Define extends class of StarObjectClass, and defines a new function “Add” of
it.
class MyObjectClass : StarObjectClass
{
public
int Add(StarObjectClass self, int x, int y)
{
//--Callback
to script function
self._Call("Show", x + y);
return x + y;
}
public MyObjectClass(StarObjectClass srcobj)
: base(srcobj)
{
}
}
class Program
{
static void
{
//--Step1 : Init cle,
create service group,import sharelibrary, and create service
StarCoreFactory starcore = StarCoreFactory.GetFactory();
StarServiceClass
Service = starcore._InitSimple("AddFunctionService", "123",
0, 0);
//--Step3 : Create interface
object, named “TestClass”.
MyObjectClass Obj = new
MyObjectClass(Service._New("TestClass"));
}
}
}
For python code calls the above c# file, there are three steps; 1. Init cle, create service group,import c# file, and create service. 2. Create Instance of object “TestClass” defined in c#. 3. Call function “Add”.
import starpy
--Step 1 : Init cle, create service group,import
c# file, and create service.
Service=starpy._InitSimple("test","123",0,0,"AddFunctionService.dll");
--Step 2: Create Instance of object “TestClass”
defined in c#.
a = Service.TestClass._New();
--Step 3: call function “Add”
def a_Show(self,
print("print from python call back ",
a.Show = a_Show;
print("Add returns : ",a.Add(12,34))
Service._ServiceGroup._ClearService()
starpy._ModuleExit()
Run : starapp -e python_call.py?script=python, or python python_call.py |
| examples code download |
| Copywright (C) 2005 www.SRPLab.com(Star-River Platform Lab.) All Rights Reserved | Email:support@srplab.com |