外部ライブラリ†

6 個の関数。

LOADLIB†

書式†

LOADLIB(path)

引数†

Parameter Description
path 読み込むDLL、またはSAORI-basicの実行ファイル(Tc604-1以降)のパス。YAYAのディレクトリからの相対パス、または絶対パスで指定する

戻り値†

解説†

外部ライブラリ(DLL)ファイルを読み込みます。初回呼び出し時のみLoadLibraryを実行し、ロード関数を呼び出します。読み込む外部DLLはYAYAと同じインターフェース(load/unload/request関数のエクスポート)を持つ必要があります。

SAORI-basic†

Tc604-1以降、DLL以外のファイルを指定すると、SAORI-basic(コマンドライン引数を受け取り、標準出力に結果を書く実行ファイル)として扱います。DLLかどうかは拡張子で判断します。

読み込み時は、ファイルがあるか(POSIX 環境では実行できるかも)を確かめるだけで、実行はしません。REQUESTLIB に SAORI/1.0 の要求を渡すたびに、YAYA が実行ファイルを起動して応答を作ります。proxy_ex.dll などは要りません。

引数と標準出力の文字コードは CHARSETLIBEX の設定に従います。既定は他のSAORIと同じく charset.extension ですが、POSIX 環境のSAORI-basicだけは UTF-8 です。Windows では引数は文字コードによらず Unicode のまま渡ります。

互換性†

関連項目†


UNLOADLIB†

書式†

UNLOADLIB( path )

引数†

Parameter Description
path DLLのパス。YAYAのディレクトリからの相対パスまたは絶対パス

戻り値†

VOID(戻り値なし)

解説†

外部ライブラリ(DLL)をアンロードする。最初の呼び出し時にアンロード操作を実行し、その後FreeLibraryを行う。

外部ライブラリDLLは、YAYA自身と同じインターフェース(load/unload/request関数のエクスポート)を持っている必要がある。

別のスレッド(THREADSTART)が REQUESTLIB でそのライブラリを呼び出している最中は、アンロードせずに警告 W0013 を出す。呼び出しが終わってから、もう一度 UNLOADLIB すればよい。

互換性†

関連項目†


REQUESTLIB†

書式†

REQUESTLIB( path , string )

引数†

Parameter Description
path DLLの位置。YAYAのある位置からの相対パス、または絶対パス。
string request関数に渡す文字列

戻り値†

解説†

事前にロードされた外部ライブラリのrequest関数を呼び出し、その結果を取得します。外部ライブラリのDLLは、YAYAと同じインターフェース(load/unload/request関数のエクスポート)を持つ必要があります。

Tc604-1以降、LOADLIB で読み込んだSAORI-basicの実行ファイルを指定すると、YAYA が実行ファイルを起動して SAORI/1.0 の応答を返します(詳細)。

スレッドとの関係†

応答の遅い外部ライブラリを待つ処理は、THREADSTART で起動したスレッドから呼ぶと、待っている間も SSP からの request や他のスレッドが止まりません。

互換性†

関連項目†


FUNCTIONEX†

書式†

FUNCTIONEX( 'path' , 'Argument0', 'Argument1', ... )

引数†

Parameter Description
path yaya.dllからの相対パスで、呼び出したいSAORIのパスを指定する。SAORI-universalならDLL、SAORI-basicなら実行ファイル(Tc604-1以降)
Argument* SAORIへの引数。SAORI-basicの場合は実行ファイルのコマンドライン引数になる

戻り値†

解説†

SAORIモジュール(外部プラグイン)を実行する関数。

システム関数ではなく、システム辞書(yaya_shiori3.dic)で定義された関数で、LOADLIB と REQUESTLIB を使ってSAORIを呼び出す。

SAORI-universalとSAORI-basicの両方に対応している。SAORI-universalの場合、戻り値としてResultが返されるとともに、valueex配列にValueデータが格納される。

SAORI-basicは、Tc604-1以降ではYAYA本体が直接実行するので、実行ファイルのパスをそのまま指定すればよい(POSIX 環境でも動く)。実行のしかたは LOADLIB を参照。

_result = FUNCTIONEX('SAORI\sample.exe', 'はろーわーるど')

それより前のバージョンでは、proxy_ex.dll などのSAORI-universalを経由して呼び出す(pathにproxy_ex.dllのパス、Argument0にSAORI-basicのパス、以降にSAORI-basicへの引数を指定する)。

path が internal_ で始まるとき(internal_crypto など)は、DLLを読み込まず、DIRECTSSTPでベースウェア(SSP 2.9.13以降)の内蔵モジュールを呼ぶ(SAORI over DirectSSTP)。使えないときは0を返す。詳しくは yaya_shiori3.dic を参照。

SAORIの具体的な使い方については、Tips「SAORIの使い方」を参照のこと。

互換性†

関連項目†


CHARSETLIB†

書式†

CHARSETLIB(code)
CHARSETLIB()
CHARSETLIB

引数†

Parameter Description
code (省略可)文字コードIDまたは文字コードを表すテキストで文字エンコーディングを指定する(文字コードの名前)。知らない名前なら警告 W0012 を出し、設定を変えない

戻り値†

引数なしの場合:現在のDLL文字コード設定を文字列で返す 引数ありの場合:VOID(何も返さない)

外部ライブラリとのやり取りに使用する文字コードを設定する。LOADLIBの前に呼び出す必要がある。デフォルトのエンコーディングは設定ファイルの charset.extension エントリ(未指定の場合は charset)から取得される。

CHARSETLIBはすべての外部ライブラリにグローバルに適用されるが、CHARSETLIBEXはライブラリごとの設定が可能。

互換性†

関連項目†


CHARSETLIBEX†

書式†

CHARSETLIBEX(path, code)
CHARSETLIBEX(path)

引数†

Parameter Description
path DLLファイルの場所。YAYAのディレクトリからの相対パス、または絶対パスで指定する
code (省略可)文字コードIDまたは文字コードを表すテキスト識別子(文字コードの名前)。知らない名前なら警告 W0012 を出し、設定を変えない

戻り値†

codeを省略した場合:指定したDLLの現在の文字コード設定を文字列で返す codeを指定した場合:VOID(何も返さない)

外部ライブラリとのやり取りに使用する文字コードを個別に指定する。Tc530-2以降、LOADLIBの前に呼び出すことで有効になり、「初期化中」に設定可能。初期化時にあらかじめこの関数で文字コードを指定しておくと良い。デフォルトのエンコーディングは設定ファイルの charset.extension エントリ(未指定の場合は charset)から取得される。ただし POSIX 環境のSAORI-basic(Tc604-1以降)のデフォルトは UTF-8。

互換性†

関連項目†