DelFusa Blog 総本山

プログラミングの話題とかです。

NEW | PAGE-SELECT | NEXT

≫ EDIT

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

| スポンサー広告 | --:-- | comments(-) | trackbacks(-) | TOP↑

≫ EDIT

DelphiScriptingHost(っぽい何か)


       __     .∧,,∧ __    ラッセラ ラッセッラ♪
     /_/ヘ_ ミ゚Д゚,,ミ| | ⊂\    ラッセ ラッセ ラッセラ♪
  _/∋/// _>⊂  ミ// __\ 
 //⌒//__/\〃゙` ミ// / _\
( ( (⌒)__/\\ (( ̄) ̄ ̄____) )
 \\_/   丶―――― \\_/  


と、金田バイクにのってみましたが、、、

そんなことよりも。。。pikさんがコメントをくれましたのでお返事ついでに次のネタ。

漏れが何を言いたいのか、、、というとですな....

みなさん、WSHは知っていますか?

バッチファイルをさらに強力にした感じのやつですよ。
こいつはVBScriptとJScriptで動作します。
例えばこんなファイルをtest.vbsと名前を付けてテキスト保存してください。



MsgBox "ハロー ワールド"



そんで、実行してみてください。

結果はこう。
VBSHALLO.png


そう。これだけでVBScriptが実行されてしまうわけですね。

これと同じ事が、Delphiソースでやりたい。
でも、できないから悲しい。

と、なった時には、このCompiler配布によって、
実にお手軽に実装できてしまう気がしてます。


どうやったら実装できるのか。
つー、アイデアだけ先行して言っちゃいます。
こんなの言った者勝ちな気がしますので、先に言っちゃいます。


まあ、拡張子を『.dels』をDelphiScript(?)ファイルだとして決めちゃいましょう。
『test.dels』の中身は、例えばこんな感じ。


program DelphiScript;
uses SysUtils, Dialogs;
var MsgStr: String;
begin
MsgStr := 'ハロー ワールド';
ShowMessage(MsgStr);
end.



まあ、前後に冗長だけど、こんなもんとしちゃいましょう。
※最初の1行はスクリプトソースには不的確な気がするよね。


で、このtest.delsファイルを自作のDelphiScriptingHost.exeに関連づけてしまいましょう。
(関連づけくらいはインストーラでやってあげたいものですな)

そして、このDSH.exe(DelphiScriptingHostね)は、とっても簡単な処理を行うわけですお

「test.dels」を起動すると、関連付いたDSH.exeが動きます。
DSH.exeは、内部で
「test.dels」ファイルを「test.dpr」ファイルに焼き直してもなんでもいいんですが
DSH.exeに同梱している、Delphiコマンドラインコンパイラ(DCC32.exeとかいう名前なんでしょうか?よくしりませんよ。あたしは)
を、起動して、「test.dels」ファイルの中身をコッソリコンパイルしてしまいます。

test.exeをコソーリ内部で作成して(作成するファイルはユーザーに見えないので名前はDelphiScript.exeでもなんでもいいですが)
それを起動してあげると・・・

メッセージボックスが出力される。

結果はこうなったらいいな~~
DELSHALLO.png

というわけですね。

さてさて、、、、これで、WSHが行っているユーザー体験(XPってのですナ)、と同じ操作性が
Delphiソースにて実現可能になってしまう。

という仕組みなわけ、、、、ですね。


さてさてさてさて。
こういう実装をしちゃうのは、
早い者勝ちですかね、、、それとも乱立ですかね。
それとも、場末の飲み屋みたいに、ひっそりとさびれて
だーれも実装しませんかしらね。

すぐに実現できそうな、おもしろそうなネタがあるのになぁ?

ま。アイデアだけなんで後はご自由に、nilなり焼くなり、実装はご自由に。

・・・それにしても、こんな事、やっちゃっていいんでしょうかい?本当に?
 俺の場合、FDELPHIログなんかも著作権など微塵も配慮せずにうpっちまうくらいなので
 コードなギア社に確認なんて、全くせずに行動しちゃいますぜ・・・
 おとがめられたら、それこそホドホドに楽しいし。

あ、でも、誰かに先を越されたら悲しいな~(w
俺、忙しいから~~、誰かに先を越されるかもなあ。(w

(釣り)
              /:
             /  :
            /   :
     ∧,,∧    /    :     
     ミ,,゚Д゚彡っ/     :
     つ,,  ,,,ノ_.       :
   | ̄ ミ,,,,/~),        :
 ̄ ̄ ̄ ̄ .じ'J ̄ ̄ ̄|    :
~~~~~~~~~~~~~~


だれか、遠慮なく先を越さないかな~~~(w
スポンサーサイト

| 未分類 | 00:14 | comments:5 | trackbacks:0 | TOP↑

COMMENT

うんうん、意味は解る。"爆速コンパイラ"なのだから、
うまくやれば、"インタプリタ(スクリプト)の代わりに使えるんじゃ?"って事だよね。

問題は...CodeGear製ユニットを配布できない事かな?
# 多分...だけど。

何もusesできんから、実は上のような事はできんのよねぇ...。

| DEKO | 2007/07/06 01:01 | URL | ≫ EDIT

おっと、もちろん...
"コマンドラインコンパイラとはどこまでを指すのか?"
がハッキリしないから"dcc32.exeのみの配布"という前提でのコメントだよ。

| DEKO | 2007/07/06 01:13 | URL | ≫ EDIT

なっるほどーー、usesは全部自分で作成です、かあ。
そりゃ、ちとつらいですな。

使いたい人にはTurboDelphiはダウソしてもらわねばいけない、、、
って前提かぁ。。。開発者じゃないユーザーにはかなり厳しいですね。
.NETframeworkみたいに、TurboDelphiそのものをダウソさせる...ってわけか(w
SDKとしてはすごすぎる環境だが。

んーーーーーーー、この件に関してCodeGearの中の人に問い合わせるのは
激しく躊躇っぽい自主規制が入るので、聞きにくくてしょうがないので
ここは、dcuくらいは配布してみますかしらね~

・・・配布っつうか、コンパイルするときだけ、バイナリから外にだして
  コンパイル後には、コソーロ削除で、ヨロ。って感じで
  いかがかしら。

漏れはたぶんもれなく遠慮なくソースるです。
人の意見を聞かずに怒られちゃうまで!ミ・∀・彡

| ミ,,゚Д゚彡 | 2007/07/06 01:42 | URL |

Borland C++Compiler
http://www.codegear.com/jp/downloads/free/cppbuilder
...はライブラリとヘッダファイルが含まれるけど、D2007の場合、
あの記事だけでは、どこまで含まれるのかわかんないよねー。

libフォルダのdcuの基本部分だけでもいいから一緒に配布できるといいんだけど。

| DEKO | 2007/07/06 02:06 | URL | ≫ EDIT

スクリプティングに必要なライブラリなどを取りそろえれば中々楽しめそうですね。
言語的にはシームレスに DualInterface メソッドを呼べる(=スクリプトっぽい挙動)わけですし。
WSH には任意の言語エンジンを登録できるので、そこに登録しても楽しそう。

| pik | 2007/07/10 11:43 | URL |















非公開コメント

TRACKBACK URL

http://delfusa.blog65.fc2.com/tb.php/56-586d580a

TRACKBACK

PREV | PAGE-SELECT | NEXT

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。