見違えるほど簡単にCでSHIORIを作れたら――
これは何か
C言語で伺かのSHIORIサブシステムを実装するライブラリです。
伺かのゴースト制作の根幹に新しい選択肢を与えます。
これを使えば煩わしいSHIORI/3.xの解釈や本体との文字列の受け渡しに悩む必要はもうありません。
あなたがすることはshiori.cとshiolink.cから参照されているshiori_events.cを編集してイベントを定義するだけです。
あとはmakeを走らせれば、ネイティブのshiori.dllとSHIOLINKインターフェース対応のshiori.exeがすぐに作成できます。
さらにはtcc(Tiny C Compiler)を使えばまるでスクリプト言語のようにCで書いたSHIORIをすぐ実行できます。
内容
このライブラリは以下のコンポーネントからなります。
- SHIORI3.xのパース・ビルド・コンテナと、load()、request()、unload()インターフェースのベースを提供するcshioriライブラリ
- SHIOLINKインターフェースのベースを提供するcshiolinkライブラリ
- 文字列ユーティリティを提供するstrutlライブラリ
- SHIORI/3.x DLLを実装するshiori.c
- SHIORI/3.x SHIOLINKを実装するshiolink.c
理念
cshioriは「Cによる栞フレームワーク」であると同時に「Cによる栞」です。
cshioriは「Cによる栞フレームワーク」なので、伺か専用汎用栞の作成が容易になり、活性化の一助になるでしょう。
またCで実装されることでさまざまなプラットフォームへの基本的な移植が容易になるでしょう。
それだけでなく、コンテナ化による容易なリクエスト・レスポンスへのアクセスと、即時実行可能なtccによるスクリプト言語のような使用感により、「Cによる栞」として、もはや「栞作者ではなくゴースト作者がshiori.dllを作成する」ことが可能になります。
- Lesser Cではなく本物のCで処理を実装すること
- 「辞書のネタバレ」を防ぐ究極の難読化
既存のshiori.dllがサポートするスクリプトによらずオリジナルのshiori.dllを作ることが、ゴースト制作の新しい選択肢になります。
使用方法
このライブラリはtcc、gcc、clang、cl(Visual C++)によるコンパイルが可能です。各コンパイラ用Makefileを参照してください。
またCとしてだけではなくC++としてコンパイルできます。各コンパイラごとに対応してください。
shiori_events.cを編集することでSHIORI/3.xのイベントを定義してください。
手軽に使用したい場合はtcc/tcc.exe -run shiolink.c
(make run)で即時実行できます。
shiori.dllを作成したい場合はtcc/tcc.exe -shared -o shiori.dll shiori.c
(make shiori)です。
SHIOLINK.DLL対応のshiori.exeを作成したい場合はtcc/tcc.exe -o shiori.exe shiolink.c
(make shiolink)です。
ライブラリは適切にリクエストとレスポンスを管理するのでshiori_events.c内の変数のみのメモリ管理を考えれば大丈夫です。
内部を詳しく知りたい場合はドキュメントを読んでください。実際に必要になる箇所はcshiori.hが大半でしょう。
制限事項
現在cl(Visual C++)によるshiori.exe生成はエラーのあるEXEを吐きます。