C# DLL mit Python verwenden

Python in C/C++ embedden, C-Module, ctypes, Cython, SWIG, SIP etc sind hier richtig.
Antworten
B-Baer
User
Beiträge: 23
Registriert: Donnerstag 5. August 2010, 11:56

Hallo,
ich versuche gerade in Python meine C# DLL einzubinden leider mit wenig Erfolg...

hat jemand eine andere Idee?

dll:

Code: Alles auswählen

using System;
using System.Collections.Generic;
using System.Text;

namespace umfragetest
{
    public class umfragetest
    {
        public string test()
        {
            return "Das klappt schon!";
        }
    }
}

python:

Code: Alles auswählen

import ctypes
from ctypes import cdll
from ctypes import *

xdll = cdll.LoadLibrary('MyDLL.dll')
xdll.umfragetest.test()

func = self._FuncPtr((name_or_ordinal, self))
AttributeError: function 'umfragetest' not found
lunar

ctypes kann keine .NET-Assemblies laden. Wie bist Du denn darauf gekommen?!
B-Baer
User
Beiträge: 23
Registriert: Donnerstag 5. August 2010, 11:56

hatte schon mal c++ dll's damit eingebunden und dachte ich versuche es mal :roll:

Die Frage bleibt aber bestehen, wie binde ich denn C# DLL's ein?
BlackJack

@B-Baer: C#-DLLs sind keine "richtigen" DLLs. Da steht .NET-Bytecode drin und kein Maschinencode für den Prozessor der zudem noch den Konventionen entspricht, die ihn wie compilierten C Quelltext aussehen lassen (Aufrufkonventionen, Namensgebung usw.).

Kommt IronPython in Frage? Falls es nicht noch eine andere "Brückentechnologie" gibt, könntest Du in C# auch einen XML-RPC oder JSON-RPC Server schreiben und den von Python aus dann ansprechen.
Antworten