掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
VB.NETにJavaScriptを取り込むには? (ID:113728)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
私はまだ、質問の意味自体を理解出来ていませんので、最初の 『JavaScriptを取り込む』という言葉の意味についても 答えていただけると、回答がしやすいです。 それと、最初の質問では「JavaScript」を対象にしていましたが、 私の回答(案2)では、「JScript」を対象にしています。 「JavaScript」と「JScript」は、名前は似ていますが、実際には別の言語です。 マグさんが実際に使いたいスクリプトの文法は、JavaScriptの物なのでしょうか? それとも、JScriptの物なのでしょうか? (もしJavaScriptの方だとしたら、私の回答では解決できません…) > JScriptのソース 案1で書いたのはJScriptですらなく、「JScript.NET」なのですが、 それでも構いませんか? JScript.NETという言語は、JScriptの拡張ですから、 JScriptの文法で書かれたコードは、JScript.NET環境でも動作しますが、逆に、 JScript.NETの文法で書かれたコードは、JScript向けの環境では動作しません。 > DLLにすると書かれていますが JScript.NETソースのコンパイル時に、『/t:library』オプションを付加するだけで、DLLが作成されます。 例えば……… //======= C:\TEST.JS ======= import System.Windows.Forms class Test { static function Msg(arg : System.String) { System.Windows.Forms.MessageBox.Show(arg) } } というソースファイル(C:\TEST.JS)を作成した後、 「Visual Studio .NET コマンド プロンプト」から、 -------- C: CD\ JSC /t:library C:\TEST.JS -------- というコマンドを実行すると、C:\TEST.DLL が作成されます。 VB.NETから利用するときは、参照設定で[Microsoft.JScript]コンポーネントと、 今作成した「C:\TEST.DLL」の2つを参照設定しておけば、 Test.Msg("実験") のようにして、JScript.NET製DLLのメソッドを呼び出す事ができます。 もし、参照設定を事前に行いたく無いのであれば、 Dim M As System.Reflection.MethodInfo = System.Reflection.Assembly.LoadFrom("C:\TEST.DLL").GetType("Test").GetMethod("Msg") M.Invoke(M, New Object() {"テスト"}) のように、動的にDLLをロードして呼び出す事もできます。 > 案2で書かれているMicrosoft ScriptControlの使い方が分かりません。 msscript.ocx がインストール済みである事が前提条件ですが、 例えば、 Dim Code As String Code = "function Calc()" & vbCrLf Code += "{" & vbCrLf Code += " return 1 + 2;" & vbCrLf Code += "}" & vbCrLf のような「JScriptの文法で書かれたコード文字列」を実行するなら、 Dim SC As Object SC = CreateObject("ScriptControl") CallByName(SC, "Language", CallType.Let, "JScript") CallByName(SC, "AddCode", CallType.Method, Code) Dim Ret As Object Ret = CallByName(SC, "Eval", CallType.Method, "Calc()") MessageBox.Show(Ret.ToString()) のような感じです。 他にも呼び出し方はありますが、詳細はヘルプ(MSSCRIPT.HLP)を御覧下さい。
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.