Location : Home > Softwares > R Title : Installation and Usage of (D)COM Server with Scilab |
![]() |
Installation and Usage of (D)COM Server with Scilab
アーカイブ
RSrv250.exe
RSrv250S.zip
インストール
R (D)COM サーバは COM サーバ及び Active X コントロールをインストールする。たいていの Windows のインストールでは実行時のユーザが少なくとも Power Users または Administrators グループのメンバであることが要請される。もしこれらのメンバでなければシステム管理者に連絡すること。(特に、セットアップはレジストリデータベースの HKEY_CLASSES_ROOT
を変更する。)
RSrv200.exe
はフルインストーラであり、実行時に必要な Visual Basic 及び Visual C++ のランタイムライブラリを含むあらゆる必要なコンポーネントを提供する。過去バージョンのインストーラにはランタイムライブラリを同梱していない。そのためもはやサポートしていない。RSrv200.exe
をインストールする。Scilab
のサブディレクトリ)から Scilab 4.1 がインストールされている bin ディレクトリに sciproxy.dll
をコピー。01 - Basic Test
を選択し、"Start" を押す。(D)COM サーバのテスト
たくさんの例とテストプログラムが R (D)COM サーバとともに提供されている。
テストプログラムの1つは常に Scilab (D)COM サーバとともにインストールされる。これはスタートメニューで見つかる。デフォルトのプログラムグループは R\(D)COM Server
であり、テストプログラムはそこにあり、 01 - Basic Test
という名称である。
Scilab (D)COM サーバを用いたアプリケーションは同様の段階を踏む。
IStatConnector
インタフェースのインスタンスを生成する。Init
を実行する。Close
を呼び出し、Scilab を閉じる。テストプログラムはいくつかの理解のための情報を提示し、テストを行う。
トラブルシューティング
最初に COM オブジェクトの .Init()
を呼び出したときに何か悪いことが起これば .GetErrorText()
を用いてエラー情報を取得すること。
"installation problem: unable to load connector"
Scilab プロキシライブラリがロードできない。これらのエラーの原因として考えられるのは以下の通り。
%SCILAB_HOME%
が Scilab がインストールされていないディレクトリを指しており、sciproxy.dll
及び Scilab バイナリ が %PATH%
にない。
www.scilab.org からコンパイル済みのバイナリをダウンロードしてこれをインストールしたのに間違った場合である。セットアッププログラムを使って R を再インストールすること。何が悪いかについては dbgview をダウンロードして確認すること。
自身で R をコンパイルした場合には %SCILAB_HOME%\bin\sciproxy.dll
を確認し、レジストリキー HKEY_LOCAL_MACHINE\Software\Scilab\LASTINSTALL
が正しくインストールフォルダを指しているか確認すること。
レジストリキーがないまたは間違っている場合、Scilab を再インストールし、Scilab に関する情報がレジストリに正しく反映されていることを確認すること。
"installation problem: invalid connector library"
おそらく Scilab プロキシライブラリにダメージ。COM サーバの本バージョンでは Scilab >= 4.1. が必要。
"installation problem: interpreter interface version mismatch"
Scilab プロキシライブラリのバージョンが正しくない。COM サーバの本バージョンでは Scilab >= 4.1. が必要。
"installation problem: interpreter version mismatch"
Scilab のバージョンが正しくない。COM サーバの本バージョンでは Scilab >= 4.1. が必要。
.Init() を呼び出したときにメッセージボックスが表示されればベースライブラリが見つけられなかったことを示す。その場合は R_HOME
をインストールフォルダに設定すればよい。このような場合はわずかであろう。
自身でインストールの問題が解決できなかった場合は R COM メーリングリストでヘルプを確認してみること。 R COM サーバ(または R COM 接続モジュールの他の部分)を使うのであれば参加しておくとよい。
全ての関数は上に示した状況と対応するエラーコードを返す。このエラーコードは VB または VBA における Err.Number
を確認することで取得することができる関数の返り値である。以下の表はエラーコードのリストである。
定義 | Decimal | Hexadecimal |
SCN_E_INVALIDARG | -2147221503 | 0x80040001 |
SCN_E_INVALIDFORMAT | -2147221502 | 0x80040002 |
SCN_E_NOTIMPL | -2147221501 | 0x80040003 |
SCN_E_UNKNOWN | -2147221500 | 0x80040004 |
SCN_E_INITIALIZED | -2147221499 | 0x80040005 |
SCN_E_NOTINITIALIZED | -2147221498 | 0x80040006 |
SCN_E_INVALIDSYMBOL | -2147221497 | 0x80040007 |
SCN_E_PARSE_INVALID | -2147221496 | 0x80040008 |
SCN_E_PARSE_INCOMPLETE | -2147221495 | 0x80040009 |
SCN_E_UNSUPPORTEDTYPE | -2147221494 | 0x8004000A |
SCN_E_EVALUATE_STOP | -2147221493 | 0x8004000B |
SCN_E_INVALIDINTERFACEVERSION | -2147221488 | 0x80040010 |
SCN_E_INVALIDINTERPRETERVERSION | -2147221487 | 0x80040011 |
SCN_E_INTERFACENOTFOUND | -2147221486 | 0x80040012 |
SCN_E_LIBRARYNOTFOUND | -2147221485 | 0x80040013 |
SCN_E_INVALIDLIBRARY | -2147221484 | 0x80040014 |
SCN_E_INITIALIZATIONFAILED | -2147221483 | 0x80040015 |
SCN_E_INVALIDCONNECTORNAME | -2147221482 | 0x80040016 |
SCN_E_INVALIDINTERPRETERSTATE | -2147221481 | 0x80040017 |
SCN_E_FATALBACKEND | -2147221472 | 0x80040020 |
レジストリ情報
セットアッププログラムはレジストリに情報を追加する。情報は HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\R (D)COM Server_is1
で確認できる。
これに関連して様々な COM サーバが登録される。
再パッケージとサイレントインストール
セットアップからファイルを抜き出し((D)COM サーバ実行ファイルのみなど)、独自のインストーラを作成する(またはサードパーティのファイルを追加する)ことは認められていない。この理由の1つは、公式なセットアップアプリケーションのみが正しいインストールを保証するものだからである。
(D)COM サーバ及び/または RExcel を独自のアプリケーションに組み込みたい場合には自身のセットアッププログラムとともに (D)COM サーバを自由に配布することができる。(D)COM サーバと RExcel を自身のアプリケーションとともに自動的にインストールしたければ「サイレント」モード(次セクションを見よ)で実行すればよい。
サイレントインストールを行えるコンポーネントは以下の通りである。
localserver
simpletest
remoteserver
development
samples
excel
excelsamples
セットアップ時のコマンドラインパラメータ
このセクションは Inno Setup version 5.0.8 のドキュメントのままである。
セットアッププログラムにはいくつかオプションでコマンドラインパラメータを受け付ける。これらはシステム管理者やセットアッププログラムを呼び出す他のプログラムには有用である。
/SP-
セットアップ開始時に This will install... Do you wish to continue? というプロンプトを表示させない。もちろんこれは DisableStartupPrompt [Setup] セクションのディレクティブが yes に設定されていても効果がなくなる。
/SILENT, /VERYSILENT
セットアップ時にサイレントにする。/SILENT ではバックグラウンドウィンドウは表示されず、インストール進展を示すウィンドウのみが表示される。/VERYSILENT ではインストール進展を示すウィンドウも表示されない。インストール時のエラーメッセージやプロンプトは(DisableStartupPrompt または '/SP-' コマンドラインで不可にしていなければ)表示される。
再起動が必要で '/NORESTART' コマンドが指定されておらず、セットアップが silent であれば Reboot now? メッセージボックスが表示される。 very silent であれば確認せずに再起動する。
/SUPPRESSMSGBOXES
メッセージボックスを表示しないようにする。'/SILENT' 及び '/VERYSILENT' とともに利用されたときにのみ効果がある。デフォルトの反応は以下の通りである。
以下の5種類のメッセージボックスは停止されない。
/LOG
インストール実行時に起こった事象の詳細をユーザの TEMP ディレクトリにログファイルを生成して格納する。これはデバッグ時に有用である。例えば、思っていた場所にファイルがなかったと疑った場合、ログファイルが実際にスキップしたか否かまたはなぜかを確認できる。
ログファイルは現在の日付に従ってユニークな名称を付けられる。(既存のファイルに上書きはしない。)
ログファイルに格納される情報は本質的に技術的なもので、エンドユーザにわかりやすくすることを想定していない。機械でパーサしやすいようにもできていない。このファイルのフォーマットは無断で変更される。
/LOG="filename"
/LOG と同様であるが、格納ファイルを指定できる点が異なる。既存のファイル名と重複すれば上書きする。ファイルが生成されなければセットアップファイルはエラーメッセージを出して終了する。
/NOCANCEL
キャンセルボタンを実行不可能にし、クローズボタンがクリックされても無視するようにして、インストール実行中にユーザがキャンセルボタンを押してもインストールがキャンセルされることを防ぐ。'/SILENT' または '/VERYSILENT' とともに使うと有用である。
/NORESTART
不要なときには再起動を要請しない。
/RESTARTEXITCODE=exit code
再起動が必要な場合にカスタム化した終了を指定する。'/NORESTART' とともに使うと有用である。Setup Exit Codes を見よ。
/LOADINF="filename"
事前に設定されたコマンドラインを指定されたファイルから読み込んで実行する。以下に説明する '/SAVEINF=' コマンドを持ちいて事前に保存されたファイルを利用する。
ファイル名に空白を含む場合には引用符で囲むことを忘れないこと。
/SAVEINF="filename"
インストール設定を指定したファイルに保存する。
ファイル名に空白を含む場合には引用符で囲むことを忘れないこと。
/LANG=language
使用言語を指定する。[Languages] セクションエントリにおいて指定されている内部名称で指定する。
妥当な /LANG パラメータが指定されれば Select Language ダイアログは出されない。
/DIR="x:\dirname"
Select Destination Location ウィザードページでデフォルトのディレクトリ名を上書きする。絶対パスで指定しなければならない。
/GROUP="folder name"
Select Start Menu Folder ウィザードページでデフォルトのフォルダ名を上書きする。[Setup] セクションディレクティブ DisableProgramGroupPage が yes に設定されていれば、このコマンドラインは無視される。
/NOICONS
Select Start Menu Folder ウィザードページで「アイコンを生成しない」をデフォルト値として設定しておく。
/COMPONENTS="comma separated list of component names"
デフォルトのコンポーネント設定を上書きする。このコマンドラインパラメータによりセットアッププログラムはカスタム化される。
/PASSWORD=password
パスワードを指定する。[Setup] セクションディレクティブ Password が設定されていなければ、このコマンドラインは無視される。
また妥当でないパスワードが指定されてもこのコマンドラインは無視される。
一般的な情報と現在の制限
Scilab のサポートは現在は開発中である。Scilab (D)COM Server 2.50は Scilab 用サポートの最初のリリースである。
RExcel は現在では Scilab をサポートしていない。Please let us know your opinion about supporting Scilab from RExcel から Scilab bのサポートに関する意見を教えて欲しい。
Scilab 関係の(一般的な)議論については www.scilab.org を見て欲しい。そこで多くの情報を入手できるだろう。Scilab (D)COM Server 関連については rcom-l メーリングリストに参加して欲しい。このメーリングリストではその名前にもかかわらず Scilab 関連の議論も飛び交っている。
Scilab 用のデータ型のサポートは R 用に比べて制限されている。現在ではスカラ値(ブール値・整数・浮動小数点・文字列)とこれらの配列がサポートされている。混合型の配列または行列は現時点ではサポートされていない。
sciproxy.dll
における Scilab バックエンドの実装は極めてシンプルで時間の問題である。C プログラムから Scilab へのインタフェースの経験を持つボランティアの貢献に感謝している。
sciproxy.dll
は現在では Scilab インストールの一部ではない。このライブラリは Scilab API (それゆえ Scilab のバージョン)の実装に依存するため、 rproxy.dll
が R と配布されるように、Scilab とともに配布されることを望む。残念ながら現時点ではなされていないため、Scilab の新しいバージョンが出たときには即座にサポートできず、インストールは複雑になる。
![]() |
Updated : 2008/05/26 |