Allgemeine Frage



  • Ich habe eine Frage:
    Wenn ich dll, Library und Header-File mit den Funktionen in C vorliegen habe, kann ich diese dann auch in anderen Programmiersprachen verwenden? Also z.B. die Funktionen in Python verwenden?

    lg
    jens


  • Mod

    Oftmals ja. Kommt ein bisschen auf die Details an. C-Objektdateien haben jedenfalls ein standardisiertes Binärinterface und zudem ist es auch eine sehr verbreitete Sprache. Wenn eine andere Sprache Möglichkeiten zur Zusammenarbeit mit anderen Sprachen bietet, dann mit C.

    Ist jedoch nie trivial.



  • Also auch mit ctypes z.B. kann ich lediglich "normalen" C-Code in Python verwenden und keine extern im Header definierten Funktionen?


  • Mod

    jens0815 schrieb:

    Also auch mit ctypes z.B. kann ich lediglich "normalen" C-Code in Python verwenden und keine extern im Header definierten Funktionen?

    Sag doch, wenn es dir um das Zusammenspiel von C und Python geht und frag nicht so allgemein rum!

    ctypes kann compilierte C-Funktionen aus Bibliotheken aufrufen. Ich verstehe nicht, was du mit der Unterscheidung von "normalem" C und extern meinst.



  • Das Stichwort lautet Foreign function interface (kurz FFI). Wie bereits erwähnt gibt es in Python dafür das Ctypes-Modul. Python bietet an sich aber auch eine API an, mit der man von C direkt Funktionen und Klassen in Python erstellen kann (für C++ siehe auch Boost.Python). Ansonsten kann man sich mit SWIG auch Bindings generieren lassen.


Log in to reply