関数電卓の作成について

タグの編集
投稿者 K.K.  (高校生) 投稿日時 2011/5/29 00:32:17

今、VisualBasic2008 ExpressEditionで関数電卓を作成しているのですが…

以前、JavaScriptで同じデザインで作成したときは、JavaScriptのeval関数で計算を実行していたのですが、VisualBasicなどのプログラミング言語には、JavaScriptなどのプロトタイプ言語にあるeval関数が無いことが分かり、どう計算しようか迷っています。

VisualBasicでのeval関数または、クラスがある、または作成できるなどありましたら、教えて下さい。
投稿者 魔界の仮面弁士  (社会人) 投稿日時 2011/5/29 03:30:10
このあたりの過去ログが参考になるかもしれません。
http://rucio.cloudapp.net/ThreadDetail.aspx?ThreadId=9500
http://rucio.cloudapp.net/ThreadDetail.aspx?ThreadId=2189
投稿者 K.K.  (高校生) 投稿日時 2011/5/30 22:54:56

出来るだけ、JScript(VBScript)のeval関数を実行して、答えをVisualBasic上に戻すのではなく、dllファイル内にevalクラスを作って、そこをexeファイルにインポートしたいです。

ちなみに、VisualStudio2008 ExpressEdition(VisualBasic)では、dllファイルを作る際、同ソフトの違うバージョンと違って、この機能が使えないとかありますか??
投稿者 魔界の仮面弁士  (社会人) 投稿日時 2011/5/31 01:27:56
先に紹介した URL には、JScript / VBScript に頼らない実装方法についても
話題にされていますので、参考にして自作してみてください。


> dllファイルを作る際、同ソフトの違うバージョンと違ってこの機能が使えないとかありますか?? 
開発環境としての機能差はあります。
たとえば、データベース連携のツールが無いとか、アドインが使えないとか、
帳票出力ツールや難読化ツールが付属していないとか、アイコン集の有無だとか。
http://www.microsoft.com/japan/msdn/vstudio/2008/product/compare.aspx
http://www.microsoft.com/japan/msdn/vstudio/2008/product/vsts/compare.aspx

ですが、それらは開発環境としてのツールの使い勝手の話であって、
生成されるコードに直接的な違いが出るというわけではありません。

そもそも、DLL を作るだけならば Express Edition すら不要です。

たとえば、メモ帳で
Imports System
Class Class1
  Public Shared Function Method(ByVal a As IntegerByVal b As IntegerAs Integer
    Return a + b
  End Function
End Class
と書いた C:\WORK\TEST.VB を用意した上で、[スタート]-[アクセサリ]-[コマンド プロンプト]から
C:\WINDOWS\Microsoft.NET\Framework\v3.5VBC.EXE /t:Library /out:C:\WORK\TEST.DLL C:\WORK\TEST.VB
と入力すれば、これで C:\WORK\TEST.DLL が出来上がります。

開発環境をインストールすることなく、DLL を作成できてしまうわけです。

もちろん、このような手作業開発では効率も悪いですし、入力ミスも増えてしまいます。
参照設定するライブラリが増えれば、コンパイルに必要なコマンドも長大になり、管理が大変になります。

だからこそ、通常は開発環境を使って開発効率/デバッグ効率を向上させるというわけです。

そしてその開発環境にも幾つかのエディションがあるわけですが、その中で、どこまでの機能が
必要なのかは個人個人で差があるでしょうから、どこまでの機能が必要なのかを判断した上で、
Express で十分なのか、それとも上位のエディションを購入するべきなのかを選択してみてください。