C-Code für Xojo-Projekt nutzen?

Hallo zusammen!

Ich versuche es erstmal hier im deutschen Unterforum, weil ich nicht sicher bin, ob ich mein Anliegen auf Englisch przise 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) fr mehrere Sprachen beherrscht. Um zu wissen, welche Teile eingefrbt werden mssen, habe ich mir einen Lexer geschrieben, der inzwischen auch ziemlich flott arbeitet.

Vor ein paar Tagen habe ich spaeshalber (ich bin reiner Hobbyprogrammierer, mal schauen also, wohin es mich trgt) angefangen, mich ein bisschen mit C zu beschftigen, 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 zurckgibt. (Ein Token ist bei mir eine Struktur mit Bezeichnung, Startposition, Lnge des Tokens und Verweis auf das nchste 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 mglich, Plugins in anderen Sprachen fr 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 erklrt wird, verstehe ich sie nicht, um ehrlich zu sein.

Daher meine Frage(n): Gibt es Mglichkeiten, meinen C-Code irgendwie fr Xojo nutzbar zu machen? Und wenn ja: Gibt es ein Tutorial oder eine Einfhrung, wie man das macht? (Kann natrlich auch englisch sein; das Lesen ist kein Problem.) Fr mich ist das absolutes Neuland, aber mich wrde das unter Performance-Gesichtspunkten schon sehr reizen, da mal einen nheren Blick zu riskieren

Gru Jens

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.

Ich habe mich mit Bibliotheken (und deren Erstellung) noch nie beschftigt, aber dazu wird es ja vermutlich genug im Netz zu finden geben.
Aber ich nehme an, es ist nicht mglich, einfach die fertig kompilierte ausfhrbare Datei einzubinden?
(Entschuldigung, wenn die Frage bld ist, aber wie gesagt, ich bin hier vllig unerfahren.)

Gru Jens

Man kann auch per Shell Klasse ein anderes Programm starten.

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

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 :slight_smile:

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

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)

Thanks, Norman!

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

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

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

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

Wir gehen immer off-topic :slight_smile:

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

Gruß Jens

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

Es gab ja keine Frage; ich war nur von der Qualitt der automatischen bersetzung berrascht.
Zum Thema werde ich erstmal Normans PDF durcharbeiten.

Gru Jens