FcScript V1.0 ヘルプファイル(説明書付き
FcScriptはForcalとMForcalがサポートするスクリプトコントロールですので、Forcalの構文についてある程度の知識が必要です。FcScriptはForcalとMForcalをラップしているだけなので、Forcalを理解することはFcScriptを理解することになります。
1.1 FcScriptを使う理由
VBScript や JScript などのスクリプトでは遅いと感じるときに FcScript が必要になります。Forcalのレベル1関数の計算速度は、(C/C++)やFORTRANの50%程度で、レベル2関数の計算速度は若干落ちます。
FcScriptがサポートするWebページを閲覧することができます。
VBScript、JScriptなどのスクリプトの機能を拡張するためにCOMコンポーネントを設計したい場合、FcScriptの方が効率を下げずにForcal拡張ダイナミックライブラリを設計しやすい(COMコンポーネントで関数を呼ぶと時間がかかる)のでおすすめです。
FcScriptは、すべてのホストプログラムに対して、高速なスクリプト制御と無制限の拡張性を提供します。
また
Forcal、MForcal、OpenFcはSky SoftwareまたはHuawun Software Parkからダウンロードできますので、Forcalについてもっと知りたい方はそちらをご覧ください。
1.2 FcScriptの登録とログアウトの方法
FcScriptのダウンロード
上記のサイトが使えない場合は、My blog1 My blog2 で適当なサイトを探してダウンロードすることができます。
FcScriptを使用するには、Windowsに登録する必要があります。FcScriptはディスク上のどこにでも置くことができますが、FcScriptは自動的にこのフォルダー内のダイナミックライブラリーを探してロードするため、"c:㈳FcDll "というフォルダーに置くことをお勧めします。以下では、FcScriptと関連するすべてのダイナミックライブラリファイルが "c:㈳FcDll "フォルダにあることを前提に説明します。
FcScript.dllを登録します。Start->Run: regsvr32 c:\FcDllFcScript.dll
FcScript.dllをログアウトします。"Start"->"Run": regsvr32 /u c:\FcDllFcScript.dll
FcScriptの使用を中止する場合は、通常、まずFcScriptからログアウトし、その後「c:㈳FcDll」フォルダーを削除してください。c:⇄FcDll」フォルダを先に削除した場合は、レジストリクリーニングツールでレジストリをクリーンアップする必要があり、クリーンアップしなくても問題ない。
1.3 FcScriptがサポートするWebページへのアクセス
Web ページ 1 Web ページ 2 Web ページ 3 Web ページ 4
1.4 VBS ファイルを使った FcScript のデモ
以下のVBScriptファイルをvbsファイルとして保存し、デモを行います。
Set obj=CreateObject("FcScript.VBMForcal")を設定します。
dim FcStr, nModule, hModule, err1, err2, iErrCode
FcStr="(:x)=FcGet(&x),FcSet(x+11);" 'Forcalソースプログラム
MsgBox FcStr
iErrCode=obj.VBComModule (FcStr, nModule, hModule, err1, err2 ) 'Forcalソースプログラムをモジュールとしてコンパイルします。
If iErrCode=0 Then
err1=100.0
iErrCode=obj.VBSet(err1) '実数パラメータをFcScriptに転送する。
call obj.VBExeModule (hModule, CLng(0), CLng(0), CLng(0)) 'モジュールを実行します。
iErrCode=obj.VBGet(err1) 'FcScriptから実数パラメータを取得する。
MsgBox err1
エルセーヌ
MsgBox iErrCode
終了 If
セット obj=Nothing
1.5 Demonstrating FcScript with a web page
Save the following web code as an htm file for demonstration. You need to allow web access to the control to demonstrate it.
.
一个FcScript简单例子
{フォーム
入力 {を入力します。
入力 {を入力します。
{{br--------------------------------------------------------------------------------
2 FcScript 言語リファレンス [目次]
VBMForcalインタフェースには、以下の機能が実装されています。 全てのインターフェースパラメータはVARIANT型である。
2.1 VBMForcalインタフェースで実装されている機能
2.1.1 Forcalワークスペースの出入りを要求する: VBUseForcal(iUse)
この方式は当面使用しない。 どうしても使いたい場合は、MForcalのUseForcalという関数の説明をご覧ください。
2.1.2 ソースプログラムのコンパイル:VBComModule(FcStr,nModule,hModule,err1,err2)
ソースプログラム中の式を1つまたは複数のモジュールにコンパイルします。 サブモジュールは、ソースプログラムの中で#MODULE#と#END#で定義することができます。 つまり、#MODULE#と#END#の間にある式をサブモジュールとして定義しています。 モジュールにおいて、~で始まる式は正のモジュール番号式としてコンパイルされ、他のモジュールからアクセスすることができ、それ以外の式は負のモジュール番号式としてコンパイルされ、他のモジュールからアクセスすることはできない。
FcStr: ソースプログラムを指し示す文字列。
nModule: 複数のモジュールのうち、最小のモジュール番号を返す。 このパラメータは通常使用しない。 長い整数でなければならない!
hModule: モジュールの実行に使用されるモジュールへのハンドルを返す。 長い整数でなければならない!
err1、err2:コンパイルエラーの発生箇所を返す。 長い整数でなければならない! 現在、エラー位置が不正確です。ソースコードがすべて英語の場合、エラー位置は正確です。ソースコードに漢字がある場合、エラー位置は不正確です。
この関数は、コンパイルされたコードを返します。 戻り値は長整数!
詳しくはMForcalの関数ComModuleの説明をご覧ください。
2.1.3 プログラムの実行: VBExeModule(hModule,outl,outd,outc)
hModule: ソースプログラムのコンパイル時に取得したモジュールへのハンドル。 長い整数でなければならない!
outl, outd, outc: 通常、これら3つのパラメータはゼロに設定され、長い整数でなければなりません!
詳しくはMForcalのExeModule関数の説明をご覧ください。
2.1.4 モジュールの削除:VBDeleteModule(hModule)
hModule: ソースプログラムのコンパイル時に取得したモジュールへのハンドル。 長い整数でなければならない!
詳しくはMForcalのExeModuleという関数の説明をご覧ください。
2.1.5 フォーカルのダイナミックライブラリ拡張のロード:VBLoadDll(str)
FcStr: Forcal拡張ダイナミックライブラリの名前を含む文字列。
FcScriptでは、複数のForcal拡張ダイナミックライブラリをロードすることができます。Forcal拡張ダイナミックライブラリ名は、ダブルクォート"... "で囲まれています。 を二重引用符で囲んでください。 ダブルクォーテーション<"... "は無視する。... Forcal 拡張ダイナミックライブラリ内 >.
例:"FcData32", "d:\FcDll╱ofc32"
フォーカルエクステンションのダイナミックライブラリのロード順序に注意してください。
この機能は、"c:㈳FcDll "フォルダー内のダイナミックライブラリーを自動的にロードします。
2.1.6 FcScript バッファへのデータ転送:VBSet(Val)
FcScriptにはバッファがあり、VBScriptとバッファは相互にデータを転送することができます。 VBScript でこの関数を使用すると、Val データをそのバッファに転送し、関数が動作状態を返します。
現在,この関数がバッファに転送できるのは,長整数または倍精度実数のみである。 配列や文字列などのデータの転送は、後ほど追加する予定です。
Valが長整数であれば長整数バッファに,Valが倍精度実数であれば倍精度実数バッファに,というように転送される。 この関数の戻り値は、現在、転送されたデータ数です。
2.1.7 FcScript バッファからのデータ取得:VBGet(Val)
FcScriptにはバッファがあり、VBScriptとバッファは相互にデータを転送することができます。 VBScript でこの関数を使用し、バッファから Val にデータを転送し、動作状態を返します。
現在,バッファからValへの転送は長整数または倍精度実数のみであるが,将来的には配列や文字列などのデータも追加される予定である。
Valが長整数であればバッファ内の長整数データを取得し,Valが倍精度実数であればバッファ内の倍精度実数データを取得する,というように。 関数の戻り値は、現在、転送されたデータ数である。
2.1.8 Forcalの再初期化:ReInitForcal()
Forcalを最初にロードしたときの状態に戻す。
2.2 FcScriptにおけるForcの2次関数
2.2.1 FcScriptバッファへのデータ転送 [整数関数、実数関数]: FcSet(x1,x2,...) ...)
FcScriptでは、バッファがあり、バッファとForcalが相互にデータを転送できるようになっている。 Forcalのこの機能を使って、データx1,x2,...を転送することができます。... をこのバッファに追加した場合、この関数は常に0を返します。
整数式の場合は整数バッファに,実数式の場合は実数バッファにデータが転送される。
2.2.2 FcScriptバッファからのデータ取得 [整数関数、実数関数]: FcSet(&x1,&x2,...) ...)
FcScriptでは、バッファがあり、バッファとForcalが相互にデータを転送できるようになっている。 Forcalでこの関数を使うと、バッファからx1,x2,...にデータを転送することができます。... この関数は常に0を返します。
整数式の場合は整数バッファのデータを取得し,実数式の場合は実数バッファのデータを取得する。
--------------------------------------------------------------------------------
3 FcScriptのソースコード [目次]
筆者はcom, atl, webに詳しくないので、FcScriptのメンテナンスは困難ですが、この分野の専門家であれば、FcScriptのソースコードをダウンロードしてメンテナンスすることが可能です。
ダウンロード 1
上記のサイトが使えない場合は、My blog1 My blog2 で適当なサイトを探してダウンロードすることができます。
関連
-
コマンドによるフォルダの簡単なインクリメンタルバックアップ(win/linux)
-
期限切れのアカウントを自動的に禁止するRouterOSスクリプト
-
パスワード入力を非表示にする InstallShield スクリプト
-
[解決済み】c++のコンパイルエラーです。ISO C++はポインタと整数の比較を禁止しています。
-
[解決済み] メインループの 'builtin_function_or_method' オブジェクトが反復可能でない
-
[解決済み】CSV入力で1行目の列数が不正になるエラー
-
[解決済み】C++ Cout & Cin & System "Ambiguous" 【クローズド
-
[解決済み】ValueError: すべての入力配列は同じ次元数でなければならない
-
[解決済み】「不完全な型 'class map' の使用は無効です」というエラーが発生しました。
-
[解決済み】エラー:報告されていない例外 FileNotFoundException; キャッチするか、スローするように宣言する必要があります。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
複数のサイトをまとめてよく見たい オススメ度
-
[解決済み】このリポジトリで別のgitプロセスが動作しているようです。
-
[解決済み】makefile:4。*** missing separator. 停止する
-
[解決済み】C#でクエスチョンマークを2つ並べるとどんな意味になるのか?
-
[解決済み】PythonでDatetimeの現在の年と月
-
[解決済み] エラー: '...'のメンバー '...'が非クラス型である場合のリクエスト
-
[解決済み] 'std::out_of_range' のインスタンスを投げた後に呼び出された終了処理
-
[解決済み] Layout の割り当て時にエラーが発生しました。BoxLayout は共有できない
-
npmスクリプトとpackage.jsonの説明
-
[解決済み】「Fatal error: Unexpectedly found nil while unwrapping an Optional value "とはどういう意味ですか?