C-Code für Xojo-Projekt nutzen?

  1. 7 months ago

    Jens K

    17 Mar 2019 near Cologne, Germany

    Hallo zusammen!

    Ich versuche es erstmal hier im deutschen Unterforum, weil ich nicht sicher bin, ob ich mein Anliegen auf Englisch präzise genug formulieren kann.

    Zum Hintergrund meiner Frage: Ich hatte mir vor einer Weile einen Text-Editor geschrieben, der u.a. Highlighting (Keywords, Strings/Chars, einzeilige und mehrzeilige Kommentare) für mehrere Sprachen beherrscht. Um zu wissen, welche Teile eingefärbt werden müssen, habe ich mir einen Lexer geschrieben, der inzwischen auch ziemlich flott arbeitet.

    Vor ein paar Tagen habe ich spaßeshalber (ich bin reiner Hobbyprogrammierer, mal schauen also, wohin es mich trägt) angefangen, mich ein bisschen mit C zu beschäftigen, und in diesem Zug habe ich mir nun in C einen Lexer programmiert, der einen Quelltext als Parameter übergeben bekommt und einen Pointer auf das erste Element einer verketteten Liste von Tokens zurückgibt. (Ein Token ist bei mir eine Struktur mit Bezeichnung, Startposition, Länge des Tokens und Verweis auf das nächste Token.) Der C-Lexer arbeitet auf Anhieb um den Faktor 10 schneller als der analoge Code, den ich in Xojo geschrieben habe, was ich schon sehr vielversprechend finde.

    Nun ist es ja möglich, Plugins in anderen Sprachen für Xojo zu schreiben oder mit Declares auf Systembibliotheken zuzugreifen. Die Seiten zum Plugin SDK habe ich schon zur Kenntnis genommen, aber da hier nur dokumentiert und wenig erklärt wird, verstehe ich sie nicht, um ehrlich zu sein.

    Daher meine Frage(n): Gibt es Möglichkeiten, meinen C-Code irgendwie für Xojo nutzbar zu machen? Und wenn ja: Gibt es ein Tutorial oder eine Einführung, wie man das macht? (Kann natürlich auch englisch sein; das Lesen ist kein Problem.) Für mich ist das absolutes Neuland, aber mich würde das unter Performance-Gesichtspunkten schon sehr reizen, da mal einen näheren Blick zu riskieren …

    Gruß Jens

  2. Christian S

    17 Mar 2019 Pre-Release Testers, Xojo Pro, XDC Speakers, Third Party Store Germany

    Ihr könnt eine DLL/dylib/so bauen für die jeweilige Platform und die Funktionen per declare ansprechen.
    Dann müssen aber die Datenstrukturen in C und Xojo bytegenau passen.

  3. Jens K

    17 Mar 2019 near Cologne, Germany

    Ich habe mich mit Bibliotheken (und deren Erstellung) noch nie beschäftigt, aber dazu wird es ja vermutlich genug im Netz zu finden geben.
    Aber ich nehme an, es ist nicht möglich, einfach die fertig kompilierte ausführbare Datei einzubinden?
    (Entschuldigung, wenn die Frage blöd ist, aber wie gesagt, ich bin hier völlig unerfahren.)

    Gruß Jens

  4. Christian S

    17 Mar 2019 Pre-Release Testers, Xojo Pro, XDC Speakers, Third Party Store Germany

    Man kann auch per Shell Klasse ein anderes Programm starten.

  5. Jens K

    17 Mar 2019 near Cologne, Germany

    Die Idee hatte ich auch schon, aber die Shell kann mir ja nur einen String zurückgeben, oder? Und wenn ich den erst wieder zu einer Token-Liste zusammenbauen muss, ist der Performance-Vorteil wieder dahin, könnte ich mir vorstellen...

    Gruß Jens

  6. Norman P

    17 Mar 2019 Pre-Release Testers, Xojo Pro great-white-software.com/blog
    Edited 7 months ago

    Vor einiger Zeit habe ich ein Dokument zum Einstieg in das Schreiben von Plugins geschrieben
    Hier ist ein Link dazu
    http://great-white-software.com/gws-rb-samples/Plugins%20Getting%20started.pdf

    Ich werde heute an der Aktualisierung dieses Dokuments arbeiten

    hinweis: mit google translate geschrieben, so dass mein deutsch sehr schlecht sein kann :)

  7. Jens K

    17 Mar 2019 Pre-Release Testers, Xojo Pro Europe (Germany)

    @Norman P
    It would be nice if you also write about Windows until we get a new edition of Eugene Dakin.

  8. Norman P

    17 Mar 2019 Pre-Release Testers, Xojo Pro great-white-software.com/blog

    I dont use VS much so thats a bit out of my league

    Updated so any downloads will show what to do in Xcode 9.2 (newer versions will be very similar)

  9. Jens K

    17 Mar 2019 near Cologne, Germany

    Thanks, Norman!

    BTW: I am astounded how well Google translates these days. (I am still going with my school English.)

  10. Yeah, this is translated perfectly. As if he were a native speaker.

  11. Markus W

    18 Mar 2019 Pre-Release Testers #JeSuisHuman New Zealand, Auc...

    In my experience DeepL.com gives better translations than google translate.

  12. Natascha C

    18 Mar 2019 Pre-Release Testers, Xojo Pro Mödling, Lower-Austria, Austr...

    Eure Faszination für Online-Übersetzungsdienste in Ehren, aber das Ganze geht jetzt schon ein bisserl off-topic, findet ihr nicht? ;)

  13. Beatrix W

    18 Mar 2019 Pre-Release Testers, Third Party Store Europe (Germany)

    Wir gehen immer off-topic :-)

  14. Jens K

    18 Mar 2019 near Cologne, Germany

    Mich stört es auch nicht. Eigentlich macht es sogar für mich einen Teil des Charmes dieser Community aus ...

    Gruß Jens

  15. Christian S

    18 Mar 2019 Pre-Release Testers, Xojo Pro, XDC Speakers, Third Party Store Germany

    Wenn Du weitere Fragen hast, fang besser für jede Frage ein neues Thema hier an.

  16. Jens K

    18 Mar 2019 near Cologne, Germany

    Es gab ja keine Frage; ich war nur von der Qualität der automatischen Übersetzung überrascht.
    Zum Thema werde ich erstmal Normans PDF durcharbeiten.

    Gruß Jens

or Sign Up to reply!