2012-03-13 9 views
2

これは奇妙な質問ですが、これが可能かどうかは疑問です。実行時にコード(ユーザーが入力したコード)をで実行できる方法はありますか?たとえば、ユーザーがいくつかのCore Graphics描画コードを入力できるようにするとします。このコードをプレビューウィンドウのdrawRectメソッドで実行したいと考えています。実行時に任意のコードを実行する

だから私はこのグループの文字列を実際の実行時コードに変換する必要があります。

これも可能ですか、それとも自分の時間を無駄にしていますか?

私はいくつかのソリューションを参照
+0

これはiOSまたはMacでですか? –

答えて

3

  1. 独自の言語を作成し、Mac上で、あなたは理論的には、彼らが入力した内容から、関数のスタブを作成することができた場合に、アプリケーション
  2. それを解析実行時にコードをコンパイルしてdylibにコードをコンパイルし、dylib関数を使用して作成した関数を実行するには、アプリケーションに付属のGCCを使用します。
+0

はい、これはMac用です。これを反映するようにタグを更新します。 –

+2

あなた自身の描画用言語を作成するのが最善の策です。あなたが実際に彼らが望むCコードを実行できるようにするなら、それは非常に危険です。あなた自身の言語を使って、彼らができることを正確に指示することができます。また、2つの描画操作を実行するだけであれば、それほど難しいことはありません。 – pinerd314159

+0

それは私が考えていることを達成するかどうかは分かりません。目標がライブリフレッシュを通じて完全な描画コード(Core Graphics関数を使用)を作成できるようにすることが目的の場合は、どうすれば自分自身の言語ヘルプを作成できますか?私はそれが悪い考えだと言っているわけではありません。私はそれが自分の状況にどのように役立つのか分かりません。 –

1

Macでは、あなたのアプリが(Xcodeに付属の)テキストを送信し、コードをコンパイルして、コンパイル結果をスレーブアプリとして実行することができます(ソケット、プレビューペインの画像ピクセルをパイプを介してコピーする)。必要に応じて、ある種のプリプロセッサを使用してソースコードのテキストを変換し、独自のランタイムシェルでラップすることができます。

また、C言語インタプリタ(Cのさまざまなサブセットにはいくつかのオープンソースインタプリタがあります)を作成または移植し、Core Graphicsライブラリ呼び出しをCインタプリタのパーサーおよびランタイムエンジンに組み込みます。

目的Cの完全な通訳がわかりません。

+0

あなたの答えをありがとう。 –

関連する問題