[Python.NET] Calling C# from Python 2.3

2005-01-03 Thread Amod Kulkarni








Hi,

 

I know PythonNet has been specially designed to handle .NET/CLR compatibility
but because of some other restrictions I want to use Python 2.3 to access a C#
function.

First of all is it possible? I am trying with following piece of code in
C# (Server app) and python (client app).

 

 

 

This is a class library in C# which is compiled and
registered with following commands.

csc /target:library Class1.cs

regasm Try2005.dll /tlb:Try2005.tlb

 

 

using System;

using System.Runtime.InteropServices;

 

namespace Try2005

{

  public class TestingCSBC

  {

    [Guid("1EB394AB-2D4A-4a52-9F22-E8ACAED4800F")]

  public interface IManagedInterface

    {

  int PrintHi(string name);

    }

 

    [Guid("2FD76301-489A-4dc3-BF6B-5DF6FCE96CB8")]

  public class InterfaceImplementation : IManagedInterface

    {

  public int PrintHi(string name)

  {

    Console.WriteLine("Hello,
{0}!", name);

    //TestCSBCClass obj = new
TESTDLLCOMLib.TestCSBCClass();

    //obj.Displaymessage("In C#
application!!");

    return 33;

  }

    }

  }

}



 



 

Python code:

 

import win32com.client

try:

    serverObj =
win32com.client.Dispatch("Try2005.TestingCSBC")

except Exception,e:

    print
"Dispatch error",e

try:

   
serverObj.PrintHi("But will it work on Tribon??")

except Exception,e:

    print
"Error while Calling C# function",e

 

 

After running the above Py script I am getting following error output.

 

Dispatch error (-2147024894, 'The system cannot find
the file specified.', None, None)

Error while Calling C# function name 'serverObj' is not
defined

 

 

Any pointers would be greatly appreciated.

 

Thanks in advance.

 






_
Python.NET mailing list - [email protected]
http://mail.python.org/mailman/listinfo/pythondotnet

RE: [Python.NET] Calling C# from Python 2.3

2005-01-03 Thread Brian Lloyd



Hi 
Amod - 
 
Is the 
main issue the fact that you have to use Python 2.3? If so, you could 

use 
the beta 3 release (which was based on 2.3), or see the README.txt 

for 
instructions on building the b4 release for Python 2.3.
 
In any 
case, you should be able to just copy Python.Runtime.dll and CLR.dll 
from 
the PythonNet directory to the root directory of your python installation 

(presuming they were built against 2.3), and then 'import CLR' from your 

exising Python...
 
Brian Lloyd    
[EMAIL PROTECTED]V.P. Engineering   
540.361.1716 Zope 
Corporation   http://www.zope.com

  -Original Message-From: 
  [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]On 
  Behalf Of Amod KulkarniSent: Monday, January 03, 2005 2:38 
  AMTo: [email protected]: [Python.NET] 
  Calling C# from Python 2.3
  
  Hi,
   
  I know 
  PythonNet has been specially designed to handle .NET/CLR compatibility but 
  because of some other restrictions I want to use Python 2.3 to access a C# 
  function.
  First 
  of all is it possible? I am trying with following piece of code in C# (Server 
  app) and python (client app).
   
   
   
  This is a 
  class library in C# which is compiled and registered with following 
  commands.
  csc 
  /target:library Class1.cs
  regasm 
  Try2005.dll /tlb:Try2005.tlb
   
   
  using 
  System;
  using 
  System.Runtime.InteropServices;
   
  namespace 
  Try2005
  {
    
  public 
  class 
  TestingCSBC
    
  {
      
  [Guid("1EB394AB-2D4A-4a52-9F22-E8ACAED4800F")]
    
  public 
  interface 
  IManagedInterface
      
  {
    
  int 
  PrintHi(string 
  name);
      
  }
   
      
  [Guid("2FD76301-489A-4dc3-BF6B-5DF6FCE96CB8")]
    
  public 
  class 
  InterfaceImplementation : IManagedInterface
      
  {
    
  public 
  int 
  PrintHi(string 
  name)
    
  {
      
  Console.WriteLine("Hello, {0}!", name);
      
  //TestCSBCClass 
  obj = new TESTDLLCOMLib.TestCSBCClass();
      
  //obj.Displaymessage("In 
  C# application!!");
      
  return 
  33;
    
  }
      
  }
    
  }
  }
  
   
   
  Python 
  code:
   
  import 
  win32com.client
  try:
      serverObj = 
  win32com.client.Dispatch("Try2005.TestingCSBC")
  except 
  Exception,e:
      print "Dispatch 
  error",e
  try:
      serverObj.PrintHi("But 
  will it work on Tribon??")
  except 
  Exception,e:
      print "Error while Calling 
  C# function",e
   
   
  After 
  running the above Py script I am getting following error 
  output.
   
  Dispatch 
  error (-2147024894, 'The system cannot find the file specified.', None, 
  None)
  Error 
  while Calling C# function name 'serverObj' is not 
  defined
   
   
  Any 
  pointers would be greatly appreciated.
   
  Thanks 
  in advance.
   
_
Python.NET mailing list - [email protected]
http://mail.python.org/mailman/listinfo/pythondotnet