Wie übergibt man eine Zeichenfolge von Haskell an C?

8

Alles, was ich tun möchte, ist, eine einfache Textzeichenfolge von Haskell an C zu übergeben. Es besagt jedoch, dass [Char] ein inakzeptabler Rückgabetyp ist. Ich kann nirgendwo finden, warum sie das denken und welche akzeptablen Rückgabetypen es sind.

Ich versuche ein sehr einfaches Betriebssystem-Image zu erstellen, das ich mit Qemu booten kann.

Weiß jemand, wie man das macht? Danke.

%Vor%     
Sean Heiss 23.07.2013, 13:50
quelle

1 Antwort

13

Sie möchten ein CString .

Gehe von CString zu String :

%Vor%

Gehe von String zu CString :

%Vor%

Es gibt auch eine Haddock-Dokumentation für modul Foreign.C.String .

Die allgemeine Liste der Typen, die in foreign -Deklarationen verwendet werden können, wird als Teil des Fremdfunktionsschnittstelle im Haskell-Bericht .

Bearbeiten

Ok, hier ist ein sehr kleines Beispiel für etwas, das Sie tun können, etwas basierend auf Ihrem Beispielcode. Erstellen Sie eine Haskell-Datei CTest.hs mit folgendem Inhalt:

%Vor%

Erstellen Sie dann eine C-Datei ctest.c mit folgendem Inhalt:

%Vor%

Dann kompilieren und wie folgt ausführen:

%Vor%     
kosmikus 23.07.2013 13:57
quelle

Tags und Links