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% Sie möchten ein CString
.
Gehe von CString
zu String
:
Gehe von String
zu CString
:
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 .
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:
Erstellen Sie dann eine C-Datei ctest.c
mit folgendem Inhalt:
Dann kompilieren und wie folgt ausführen:
%Vor%